如何手动调用viewDidLoad?

时间:2013-05-07 01:51:41

标签: ios objective-c uiviewcontroller protocols viewdidload

我对iOS有轻微问题。我使用协议和手动切换视图在两个视图控制器之间来回传递数据。我的问题是,当我关闭顶视图时,不再调用底视图的viewDidLoad。由于我从第二个视图向第一个视图发送信息,我需要调用viewDidLoad,以便我可以处理我传递的信息。如果您对如何执行此操作有任何想法,欢迎任何帮助。谢谢。

3 个答案:

答案 0 :(得分:10)

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

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

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

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

答案 1 :(得分:2)

使用-(void)viewDidAppear:(BOOL)animated代替viewDidLoad

答案 2 :(得分:1)

  

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

不,你不这样做,而你认为​​你这样做的事实让我觉得别的东西可能会出错。

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