0

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

有没有人见过这个?这是更大问题的征兆吗?还有设置委托和数据源的最佳实践吗?

任何见解将不胜感激。谢谢!

4

1 回答 1

2

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

每当您的 viewController 将要显示它的视图时(即第一次或它被其他一些 viewController 发现),这两个方法都会被调用。

因此,通常您应该将委托设置为 viewDidLoad 方法。

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

于 2013-03-06T15:57:31.377 回答