从popViewController访问pushViewController的方法

时间:2009-10-23 00:15:43

标签: iphone objective-c iphone-sdk-3.0 uiviewcontroller viewcontroller

我正在开发基于视图的应用程序。在这我有两个viewcontrollers。它们是:Rootviewcontroller和Detailviewcontroller。

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

任何帮助都会得到赞赏!

-Sathiya

3 个答案:

答案 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];