访问UIView方法

时间:2010-08-11 20:24:24

标签: iphone objective-c

我有一个UIViewController,它包含一个UITabBarController,它包含一个UIViewController,例如:

UIViewController1 -> UITabBarController -> UIViewController2

我想在UIViewController2中添加一个按钮来调用UIViewController1中的方法,但如何从UIViewController1访问UIViewController2?我知道从self.parentViewController拨打UIViewController2会将我带到UITabBarController,但我从哪里开始?

我尝试了来自UIViewController2的self.parentViewController.parentViewController,但获得了null

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

有几种方法可以执行此操作,具体取决于您实际尝试解决的问题....例如,如果它是类方法的实用程序,那么您应该将它放在不同的文件中并将其导入UIViewController2。如果它是一个实例方法,那么你显然有一个UIViewController1的实例,那么你需要声明一个UIViewController1类型的实例变量,它包含对视图控制器的引用。然后你可以在那个实例上调用方法....你想要完成什么?

答案 1 :(得分:0)

self.parent.parent技术通常不起作用,因为控制器之间可能存在Apple实现层。最好通过子类化和创建实例变量,并在创建时设置它们,在自己的实现中自己创建指针。

答案 2 :(得分:0)

只需将第一个添加为属性,并在实例化时指定它:

viewController1.otherView = viewController2;