UITableView ricarica i dati

sto facendo un’applicazione per la navigazione basata su iphone.

uno dei miei controller di visualizzazione assomiglia a questo:

@interface NewComputerViewController : UIViewController  

quindi sto usando un UITableView per mostrare i dati.

quando la vista viene caricata, uso un pulsante nella barra di navigazione in alto per eseguire una funzione loadStuff carica alcune cose in un dizionario.

La mia domanda: come ripopolare la vista tabella in quel viewcontroller da quella funzione loadStuff (che appartiene al controller della vista)

Puoi sempre usare il metodo [tableView reloadData] !

Ma se si dispone di alcuni dati memorizzati localmente e si caricano nuove cose da qualche server, allora si può andare a:

 [tableView beginUpdates]; [tableView insertRowsAtIndexPaths:*arrayOfIndexPaths* withRowAnimation:*rowAnimation*]; [tableView endUpdates]; 

E se vuoi eliminare la riga esistente puoi usare

 [tableView beginUpdates]; [tableView deleteRowsAtIndexPaths:*arrayOfIndexPaths* withRowAnimation:*rowAnimation*]; [tableView endUpdates]; 

Prova a usare [tableView reloadData]; (dove tableView è il nome della variabile di istanza)

Anche ricaricare …

 [tableView reloadData]; 

non ricaricherà le righe / celle modificate,]. Controllare IBOutlet di tableView non è connesso nel file XIB.?

Questa potrebbe essere una delle ragioni.

Molto importante è il fatto, che devi assicurarti che la fonte della tua vista tabella rispecchi anche le tue modifiche.

Quando rimuovi qualcosa, [tableView reloadData] non farà nulla se prima non elimini l’elemento nella tua fonte.

Ho avuto questo problema nella seguente situazione: ho avuto una vista tabella che mostrava alcuni file nella mia cartella documenti. Poi ho voluto cancellare alcuni file e li ho cancellati nella cartella documenti, ma appaiono ancora nella mia lista. Ho provato [tableView reloadData] e tutte le altre risposte suggerite in questo post, ma c’erano ancora i file elencati. Quando ho chiuso il tableview e l’ho riaperto, la lista andava bene. Perché? Bene, perché ho riempito un NSArray con tutti i miei file -> questa è la mia “fonte” per il TableView. Così, quando elimino un file, non devo solo cancellare il file nella cartella documenti, ma devo anche rimuoverlo dall’array. -> Così ho creato un NSMutableArray per poterlo rimuovere. Quindi chiama [tableView reloadData] e l’elenco va bene. 😉

Assicurati di impostare l’origine datasource e debind per tableView .

 tableView.delegate = self; tableView.dataSource = self; 

Assicurarsi che il metodo appropriato di delegato e origine dati sia implementato nel controller.

Nel metodo loadStuff, chiama:

 [tableView reloadData]; 

In rapido, lo stesso:

 tableView.delegate = self tableView.dataSource = self tableView.reloadData() 

alla fine della tua funzione loadstuff ricarica il contenuto della tua tabella scrivendo il seguente codice:

 [tableView reloadData]; 

[tableView reloadData]; dove tableview è il nome del tuo UITableView