iPhone - 访问父视图控制器?

问题描述:

我有2个viewcontrollers A,BiPhone - 访问父视图控制器?

  1. 的ViewController甲正在屏幕上显示
  2. 视图控制器B的视图是 加入的ViewController A的视图

如何我可以从ViewController B访问ViewController A而不传递指针吗?

self.parentViewController不起作用返回nuil

这应该工作,虽然它不是很优雅:

UIViewController* viewControllerA = 
    (UIViewController*) [[self.view superview] nextResponder]; 
+0

这将返回一个UINavigaionView,它不会返回他的视图控制器。我最终手动将父项传递给子项 – aryaxt 2011-01-13 22:49:08

为什么加入的viewController A的视图的viewController B的看法?如果你有意向viewController A添加一个视图,你可以通过分配一个新的UIView并在当前视图上显示它。另一方面,如果您试图从一个视图控制器转换到另一个视图控制器,即从A到B然后返回到A,则应该使用Apple文档中“视图控制器编程指南”中指定的UINavigationController 。

来源:View Controller Programming Guide

编辑:如果你想使用[[self parentViewController] yourMethodHere];你需要一个视图层次,为此,你可以使用的UINavigationController。在你现在的方案中没有建立层次结构,所以没有父视图控制器。