2013-03-06 56 views
0

我遇到了一个问题,其中没有为包含UITableView的UIViewController调用viewDidAppear方法。事实上,tableView数据源方法在viewWillAppear之后立即被调用。我发现原因是tableView委托和数据源被设置在viewDidLoad方法中(tableView reloaddata:不被调用)。如果我将这两行代码移动到viewDidAppear方法(并添加了tableView reloaddata :),一切正常。我有点困惑,因为我通常在viewDidLoad方法中设置视图委托。设置UITableView委托和数据源的最佳实践

有没有人见过这个?这是一个更大问题的症状吗?在设置委托和数据源方面,是否还有最佳做法?

任何有识之士将不胜感激。谢谢!

回答

1

viewWillAppear方法将在UIViewController的视图即将显示时调用。 viewDidAppear方法将在显示UIViewController的视图后调用。

这两种方法都会在您的viewController每次要显示视图时被调用(即第一次或者被其他viewController发现)。

因此,一般来说,您应该将委托设置为viewDidLoad方法。

你正在观察的行为绝对没问题。没有更大问题的症状。