设置 UITableView 委托和数据源时的最佳实践
Posted
技术标签:
【中文标题】设置 UITableView 委托和数据源时的最佳实践【英文标题】:Best Practice when setting UITableView delegate and datasource 【发布时间】:2013-03-06 15:48:42 【问题描述】:我遇到了一个问题,即没有为包含 UITableView 的 UIViewController 调用 viewDidAppear 方法。事实上,tableView 数据源方法是在 viewWillAppear 之后立即调用的。我发现这样做的原因是在 viewDidLoad 方法中设置了 tableView 委托和数据源(未调用 tableView reloaddata:)。如果我将这两行代码移至 viewDidAppear 方法(并添加 tableView reloaddata:),一切正常。我有点困惑,因为我通常在 viewDidLoad 方法中设置视图委托。
有人见过这个吗?这是更大问题的征兆吗?还有一般设置委托和数据源的最佳实践吗?
任何见解将不胜感激。谢谢!
【问题讨论】:
【参考方案1】:viewWillAppear 方法将在 UIViewController 的视图即将显示时调用。显示 UIViewController 的视图后会调用 viewDidAppear 方法。
这两个方法都会在每次你的 viewController 显示它的时候被调用(即第一次或者它被其他一些 viewController 发现)。
所以,一般来说,你应该将委托设置为 viewDidLoad 方法。
您观察到的行为绝对没问题。没有更大问题的这种症状。
【讨论】:
以上是关于设置 UITableView 委托和数据源时的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
从 prepareForSegue:sender 设置 UITableView 委托和数据源时出错:
即使我设置了它的委托、数据源并注册了可重用单元格,UITableView 也没有被调用