我正在开发一个iPhone应用程序,它通过viewDidLoad建立连接并将数据拉入表中。我希望控制器,或者至少是表格,每次显示控制器时重新加载,即使有人只是从一个标签切换到另一个标签或关闭并重新打开该控制器上的应用程序。有没有办法做到这一点?我似乎无法找到任何东西,搜索也很难。我已经找到了关于何时将代码放在viewDidLoad中的讨论,但没有找到控制器显示的每个方法运行的另一种方法。
谢谢, 谢丽尔
答案 0 :(得分:2)
您想要使用
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
//code to reload table viewdata
}
每次出现视图时都会调用此方法。我在我的应用程序中经常使用它。
答案 1 :(得分:1)
只能在一个地方注入代码,无法做到这一点。
您可以考虑一种解决方法,例如从所需的代码部分发送自定义“重新加载请求”通知:
viewDidAppear:
在您的视图控制器中applicationDidBecomeActive:
(如果有表格)tabBarController:didSelectViewController:
(如果使用表格切换到控制器上)tabBar:didSelectItem:
(与上述相同)在您查看控制器时,只需观察此通知并在需要时重新加载数据。
虽然,更重要的是:真的是否需要在如此苛刻的要求下重新加载数据?在大多数情况下,数据重新加载发生在
viewDidLoad:
被称为否则它只是一种矫枉过正。