【发布时间】:2012-02-06 19:27:03
【问题描述】:
使用 iOS 导航应用程序编写代码时,我遇到了以下问题:
我可以将 UITableView 的方法“initdata”放在哪里?在 viewWillAppear 或 viewDidLoad 中?
请帮帮我。
【问题讨论】:
-
这取决于你所说的初始化数据。
标签: ios uitableview uinavigationcontroller
使用 iOS 导航应用程序编写代码时,我遇到了以下问题:
我可以将 UITableView 的方法“initdata”放在哪里?在 viewWillAppear 或 viewDidLoad 中?
请帮帮我。
【问题讨论】:
标签: ios uitableview uinavigationcontroller
您可以根据应用程序的要求放置 initData,
如果您的表每次都需要使用新数据加载数据,那么它应该在
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//initData
}
否则,如果表格需要由一个不变的 Data 重新加载,或者没有对 Data 执行任何编辑操作,则应使用
- (void)viewDidLoad {
[super viewDidLoad];
//initData
}
【讨论】:
最好在initWithNibName:bundle:或initWithCoder:方法中调用,并在-(void)dealloc中释放加载的数据。
另外,您可以在viewDidLoad 中拥有它,并在viewDidUnload 中释放加载的数据。但最好避免从viewWillAppear: 调用它
编辑:
我希望数组取决于父视图中的选择。在这种情况下,编写一个 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];
【讨论】: