1

我在使用 iOS 时遇到了一点问题。我使用协议在两个视图控制器之间来回传递数据并手动切换视图。我的问题是,当我关闭顶视图时,不再调用底视图的 viewDidLoad 。由于我将信息从第二个视图发送到第一个视图,因此我需要调用 viewDidLoad 以便处理我传递的信息。如果您对如何执行此操作有任何想法,我们将不胜感激。谢谢你。

4

3 回答 3

9
- (void)viewDidLoad {
    [super viewDidLoad];
}

当视图控制器第一次加载到内存中时,只调用一次。这是您想要实例化任何实例变量并构建在此视图控制器的整个生命周期中存在的任何视图的地方。

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
}

当视图实际可见时调用,并且可以在视图控制器的生命周期内多次调用(例如当模态视图控制器被关闭并且视图再次可见时)

于 2013-05-07T04:32:19.747 回答
1

使用-(void)viewDidAppear:(BOOL)animated而不是viewDidLoad

于 2013-05-07T01:53:44.443 回答
0

我使用协议在两个视图控制器之间来回传递数据并手动切换视图。我的问题是,当我关闭顶视图时,不再调用底视图的 viewDidLoad 。由于我将信息从第二个视图发送到第一个视图,因此我需要调用 viewDidLoad

不,你没有,而且你认为你这样做的事实让我认为这里可能出现了其他问题。

考虑一下:如果您真的从第一个视图控制器传回第二个视图控制器的数据,那么第一个视图控制器拥有数据并且可以立即更新自身。它存在,它有一个观点。因此,当您将数据交给它时,它应该会在现场自我更新。然后,当您关闭第二个视图控制器时,将出现第一个视图控制器的视图 - 已经更新。实际上,关闭第二个视图控制器只会显示第一个视图控制器的视图,该视图一直存在,并且即使没有显示也已更新。

于 2013-05-07T01:58:59.277 回答