为什么在viewWillAppear之前调用UITableView方法?

时间:2009-04-04 08:16:21

标签: iphone objective-c cocoa-touch

我期待找到导致我的应用程序崩溃的原因,并且我发现在调用viewWillAppear之前或同时调用UITableView的方法。

在viewWillAppear中,我有一些代码正在初始化每个部分中的行数,但是在完成设置每个部分中包含行数的数组之前,正在调用numberOfRowsInSection。

我认为viewDidLoad不适用于我的情况,因为它在启动应用程序后只被调用一次。我对吗?每次视图出现在屏幕上时,我都需要调用我的初始化函数。

我怎样才能克服这种失败?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

好吧,我认为这个'问题'与运行多个线程来处理视图和UITableView有关。

调用此视图的视图可以(在切换到此视图之前)调用View上的方法来收集数据。

  1. 用户按下按钮
  2. 您在目标视图上触发方法,收集信息
  3. 切换到查看
  4. 您可以与代理人一起了解目标视图何时准备好加载您需要的数据,这样您就可以切换到该视图。

    希望这有帮助。

答案 1 :(得分:-1)

我认为正确的答案是“[super viewWillAppear:animated]”将调用UITableView的方法。因此有必要将此代码放在初始化tableView的代码之后。