【发布时间】:2011-11-29 06:34:06
【问题描述】:
当应用程序再次变为活动应用程序时,我正在尝试刷新我的视图数据。我相信正确的模式是让应用程序委托告诉它的视图在调用 applicationDidBecomeActive 时重新加载它的数据。
但是,我无法从 Delegate 中找到 UIViewController:
- (void)applicationDidBecomeActive:(UIApplication *)application {
MyFancyViewController* controller = //how do I get my view controller???
[controller refreshData];
}
另外,我可以指望视图控制器仍然被分配,还是有机会消失?如果这有什么不同,我正在使用 iOS 5 Storyboard。
更新: 我想我明白了:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
UIViewController* root = _window.rootViewController;
UINavigationController* navController = (UINavigationController*)root;
OctainViewController* mycontroller = (OctainViewController*)[[navController viewControllers] objectAtIndex:0];
[mycontroller refresh:nil];
}
【问题讨论】:
-
您也可以从 applicationDidBecomeActive() 发布通知并在相应的 tableviewcontroller 中处理它。
-
您可以使用 NSNotification 中心发布通知。从 applicationDidBecomeActive() 方法注册通知和发布通知的视图控制器。 gnu.org/software/gnustep/resources/documentation/Developer/Base/…
标签: objective-c ios storyboard