2010-08-11 51 views
0

我有一个包含一个的UITabBarController,其中包含一个UIViewController,一个UIViewController如:访问UIView的方法

UIViewController1 -> UITabBarController -> UIViewController2 

我要挂钩起来UIViewController2一个按钮将调用一个方法UIViewController1,但我该怎么办从UIViewController2访问UIViewController1?我知道从UIViewController2拨打self.parentViewController可以让我进入UITabBarController,但我该从哪里出发?

我试过self.parentViewController.parentViewController从UIViewController2,但得到null

有什么建议吗?

+0

注意,使另一种观点的一个的UITabBarController子视图是苹果应用程序设计指南的规定。请参阅视图控制器编程指南:http://developer.apple.com/iphone/library/featuredarticles/ViewControllerPGforiPhoneOS/CombiningViewControllers/CombiningViewControllers.html#//apple_ref/doc/uid/TP40007457-CH104-SW1 – 2010-08-11 22:15:37

回答

0

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

0

有几种方法可以做到这一点,取决于你实际尝试解决什么....例如,如果它的类实用程序,如类方法,那么你应该把它放在一个不同的文件,并将其导入到UIViewController2。如果它是一个实例方法,那么显然你有一个UIViewController1的实例,那么你需要声明一个类型为UIViewController1的实例变量,该变量持有对视图控制器的引用。然后你可以调用那个实例的方法......你试图完成什么?

+0

我正在使用' UITabBarController'将UIViewController1'分解为不同的“页面”(否则它将会是一个非常长的滚动视图),以便在iPhone上感觉更好。 'UIViewController2'只显示一组关于相关对象的信息。所以当你点击其中的一个时,我想把一个detailViewController的相关对象放到UIViewController1中的UINavigationController上。 – 2010-08-11 20:44:51

0

只需添加的第一个的属性,并指定其当实例:

viewController1.otherView = viewController2;