我正在开发基于视图的应用程序。在这我有两个viewcontrollers。它们是:Rootviewcontroller和Detailviewcontroller。
现在我使用pushViewController方法将值传递给Detailviewcontroller。它工作正常。但是现在当我从这个Detailviewcontroller中弹出时,我应该在Rootviewcontroller中访问myfunction。有可能请建议吗?
任何帮助都会得到赞赏!
-Sathiya
答案 0 :(得分:4)
在根视图控制器的viewWillAppear:(BOOL)动画方法或viewDidAppear:(BOOL)动画方法中调用myfunction,具体取决于您希望它何时被调用。这样,只要该控制器出现,您将需要运行所需的代码。
答案 1 :(得分:0)
我真的不明白你的问题100%,但我想你想从另一个View Controller进一步向上访问Root ViewController的方法?
你可以在DetailViewController中执行类似的操作:
RootViewController *rootViewController = (RootViewController*)self.navigationController.topViewController;
现在您已经引用了Root,您可以根据需要调用方法。
答案 2 :(得分:0)
在AppDelegate中存储rootViewController的实例。
// AppDelegate.h
RootViewController* rootViewController;
为实现添加访问方法。
// AppDelegate.m
- (UIViewController*) GetRootViewController {
return rootViewController;
}
调用此方法从应用程序的任何位置获取rootViewController。
UIViewController* controller =
[(AppDelegate*)[[UIApplication sharedApplication] delegate] GetRootViewController];