viewWillAppear vs Viewdidload ios

当用iOS导航应用程序代码的时候,我遇到了麻烦这个:

我在哪里可以把方法“initdata”的UITableView? 在viewWillAppear或viewDidLoad?

请帮助我。

您可以根据您的应用程序的要求,把initData,

如果你的表需要每次使用新数据加载数据,那么它应该在下面

- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; //initData } 

否则,如果表需要通过一个单一的数据重新加载,这个数据没有变化或者没有对数据执行任何编辑操作,你应该使用

 - (void)viewDidLoad { [super viewDidLoad]; //initData } 

最好在initWithNibName:bundle:initWithCoder:方法中调用该方法,并在-(void)dealloc释放加载的数据。

此外,你可以在viewDidLoad并在viewDidUnload释放加载的数据。 但是最好避免从viewWillAppear:调用它viewWillAppear:

编辑:

我希望这个数组取决于父视图中的select。 在这种情况下,编写一个setter方法,它在设置视图控制器之前设置条件并初始化数据。

 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];