iPhone - 访问父视图控制器?

时间:2011-01-13 18:47:04

标签: iphone uiviewcontroller parentviewcontroller

我有2个viewcontrollers A,B

  1. 正在显示ViewController A. 在屏幕上
  2. ViewController B的视图是 添加到ViewController的视图中 甲
  3. 如何在不传递指针的情况下从ViewController B访问ViewController A?

    self.parentViewController不起作用,返回nuil

2 个答案:

答案 0 :(得分:1)

为什么viewController B的视图被添加到viewController A的视图中?如果您想将视图添加到viewController A,可以通过分配新的UIView并在当前视图的顶部显示它来实现。

另一方面,如果您尝试从一个视图控制器转换到另一个视图控制器,即从A转到B然后再转到A,则应使用Apple文档中View Controller编程指南中指定的UINavigationController。

来源:View Controller Programming Guide

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

答案 1 :(得分:0)

虽然它不是很优雅但应该有效:

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