Quando il codice con l'applicazione di navigazione iOS, ho affrontano con difficoltà questo:viewWillAppear vs viewDidLoad ios
dove posso mettere il "initdata" metodo per UITableView? in viewWillAppear o viewDidLoad?
per favore aiutatemi.
Quando il codice con l'applicazione di navigazione iOS, ho affrontano con difficoltà questo:viewWillAppear vs viewDidLoad ios
dove posso mettere il "initdata" metodo per UITableView? in viewWillAppear o viewDidLoad?
per favore aiutatemi.
Si può mettere initdata secondo il vostro requisito della app,
se la tabella ha bisogno di caricare i dati ogni volta con i nuovi dati allora dovrebbe essere sotto
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//initData
}
In caso contrario, se le esigenze di tabella per essere ricaricata da un unico dati che non varia o non c'è alcuna operazione di modifica eseguita su dati, è necessario utilizzare
- (void)viewDidLoad {
[super viewDidLoad];
//initData
}
se inserisco il codice in entrambi i posti. Eseguirà quel codice 2 volte quando spingo questo TableView in un UInavigationcontroller – Clover03ti05
Si dovrebbe posizionarlo solo in "viewwillAppear", come array in base al valore di modifica di child View.It funzionerà. –
Non avviare mai i dati in viewWillAppear. A seconda del modo in cui si carica il controller di visualizzazione sullo schermo (in altri VC o in tutto il seguito), non può essere invocato affatto. –
e 'meglio chiamare che nel initWithNibName:bundle:
o initWithCoder:
e rilasciare i dati caricati in -(void)dealloc
.
Inoltre, è possibile farlo in viewDidLoad
e rilasciare i dati caricati in viewDidUnload
. Ma è meglio evitare di chiamare che dal viewWillAppear:
Edit:
Spero tale matrice dipende dalla selezione nella vista padre. In tal caso, scrivere un metodo setter, che imposta la condizione e inizia i dati prima di premere il controller della vista.
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
// Pass the selected object to the new view controller and depend on that, load the data.
[detailViewController initData:(id)[_list objectAtIndex:indexPath.row]];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
nel mio caso, ho bisogno che un NSArray si prepari per uitableview. e valore di questo array in base al valore di modifica di Vista figlio. – Clover03ti05
Ho modificato la mia risposta – Ilanchezhian
Dipende da cosa si intende per dati di init. – Sulthan
Qual è il tuo requisito. –