首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >viewWillAppear vs Viewdidload

viewWillAppear vs Viewdidload
EN

Stack Overflow用户
提问于 2012-01-10 19:13:15
回答 2查看 12K关注 0票数 8

在编写iOS导航应用程序代码时,我遇到了以下问题:

我可以把UITableView的方法"initdata“放在哪里?在viewWillAppear还是viewDidLoad?

请帮帮我。

EN

回答 2

Stack Overflow用户

发布于 2012-01-10 19:20:37

您可以根据您对应用程序的要求来放置initData。

如果您的表每次都需要用新数据加载数据,那么它应该位于

代码语言:javascript
复制
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    //initData
}

否则,如果需要由不变的单个数据重新装载表,或者没有对数据执行任何编辑操作,则应使用

代码语言:javascript
复制
- (void)viewDidLoad {
    [super viewDidLoad];
   //initData
}
票数 14
EN

Stack Overflow用户

发布于 2012-01-10 19:20:46

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

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

编辑:

我希望该数组依赖于父视图中的选择。在这种情况下,编写一个setter方法,该方法在推送视图控制器之前设置条件和初始化数据。

代码语言:javascript
复制
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];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8802356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档