viewDidLoad何时被调用?

时间:2010-10-16 17:24:27

标签: iphone uikit uitableview nsfetchedresultscontroller viewdidload

假设fetchedResultsController的属性chatViewControllerUITableViewController的子类的实例,nil始终为viewDidLoadnil是否安全?假设它在viewDidUnload中设置为viewDidLoad,则会被调用?呼!

如果是这种情况,那么我认为不需要像Xcode示例应用程序CoreDataBooks那样重新定义访问器函数。我宁愿把所有代码放在{{1}}而不是单独的函数中,因为这是我唯一使用它的地方。

4 个答案:

答案 0 :(得分:3)

在加载视图后调用viewDidLoad。 fetchedResultsController是否为n取决于viewController的初始化方式。例如,在创建detailViewController时,您可以在调用fetchedViewController之前设置其viewDidLoad

RecipeDetailViewController *detailViewController = [[RecipeDetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
detailViewController.fetchedResultsController = fetchedResultsController;

[self.navigationController pushViewController:detailViewController animated:animated];
[detailViewController release];

那就是说,然后在viewDidUnload中nil'ing fetchedResultsController将确保它为零。

答案 1 :(得分:3)

在这些Secnarion中调用的ViewDidLoad: -

1.当我们按照segue或stoary board id创建对象后推送视图控制器。

2.如果在应用程序中创建实例更多时间并且一次又一次地推送它,则调用多个。例如: - 如果你实现像coaursal(在滚动期间需要额外的控制器),就像它需要的那样所以它可以多次调用viewDidLoad。

3.当所有内存实例(uiviewcontroller及其子类实例化)时调用,这意味着我们的视图准备好在内存中加载地址。

4.Remember仅创建子类控制器对象。在正常的Secnarion期间,从未实例化过父类对象。

答案 2 :(得分:2)

您必须假设可以多次调用viewDidLoad。如果发送了内存警告,视图控制器将从内存中卸载视图,下次需要时将调用viewDidLoad。

答案 3 :(得分:0)

仅在第一次实例化视图时才调用

viewDidLoad。如果您不是每次都在应用程序中重新创建视图控制器,那么您只能调用一次(如果您收到内存警告则再次调用,并且视图为零)。