从popViewController访问pushViewController的方法

问题描述:

我正在研究基于视图的应用程序。在这个我有两个viewcontrollers。它们是:Rootviewcontroller和Detailviewcontroller。从popViewController访问pushViewController的方法

现在我使用pushViewController方法将值传递给Detailviewcontroller。它工作正常。但是现在当我从这个Detailviewcontroller弹出时,我应该访问Rootviewcontroller中的myfunction。是否有可能请建议?

任何帮助将是明智的!

-Sathiya

根视图控制器viewWillAppear中调用MyFunction的:(BOOL)动画方法或viewDidAppear:(BOOL)动画方法,这取决于当你想它被调用。那样,只要那个控制器出现你需要的代码就会运行。

我并不真正理解你的问题100%,但我想你想从另一个视图控制器访问根视图控制器的方法进一步向上的堆栈?

你可以做DetailViewController是这样的:

RootViewController *rootViewController = (RootViewController*)self.navigationController.topViewController; 

现在你已经到根的参考,你可以根据需要调用它的方法。

+0

是的,我想从另一个视图控制器访问Rootviewcontroller的方法。根据你的建议我尝试和rootviewcontroller方法,但应用程序被终止。还有其他解决方案吗? – Sathiya

在AppDelegate中存储rootViewController的实例。

// AppDelegate.h 
RootViewController* rootViewController; 

为实现添加访问方法。

// AppDelegate.m  
- (UIViewController*) GetRootViewController { 
    return rootViewController; 
} 

调用此方法从应用程序中的任何位置获取rootViewController。

UIViewController* controller = 
    [(AppDelegate*)[[UIApplication sharedApplication] delegate] GetRootViewController];