我有一个UIViewController,它包含一个UITabBarController,它包含一个UIViewController,例如:
UIViewController1 -> UITabBarController -> UIViewController2
我想在UIViewController2
中添加一个按钮来调用UIViewController1
中的方法,但如何从UIViewController1
访问UIViewController2
?我知道从self.parentViewController
拨打UIViewController2
会将我带到UITabBarController
,但我从哪里开始?
我尝试了来自UIViewController2的self.parentViewController.parentViewController
,但获得了null
。
有什么建议吗?
答案 0 :(得分:0)
有几种方法可以执行此操作,具体取决于您实际尝试解决的问题....例如,如果它是类方法的实用程序,那么您应该将它放在不同的文件中并将其导入UIViewController2。如果它是一个实例方法,那么你显然有一个UIViewController1的实例,那么你需要声明一个UIViewController1类型的实例变量,它包含对视图控制器的引用。然后你可以在那个实例上调用方法....你想要完成什么?
答案 1 :(得分:0)
self.parent.parent
技术通常不起作用,因为控制器之间可能存在Apple实现层。最好通过子类化和创建实例变量,并在创建时设置它们,在自己的实现中自己创建指针。
答案 2 :(得分:0)
只需将第一个添加为属性,并在实例化时指定它:
viewController1.otherView = viewController2;