iPhone SDK:如何从MyAppDelegate访问嵌套在TabBar中的ViewController?

时间:2010-01-18 01:05:05

标签: iphone uitabbarcontroller

我正在尝试在我的FirstViewController中调用一个方法,该方法是TabBar中第一个View的文件所有者。

我尝试过使用这行代码,但只是收到错误“找不到'-showData'的方法”:

[[tabBarController.viewControllers objectAtIndex:0] showData]

但是日志说明了这一点     [tabBarController.viewControllers objectAtIndex:0] 是我的FirstViewController:     

2 个答案:

答案 0 :(得分:4)

通常,您要做的是在应用程序委托中声明指向视图控制器的IBOutlet,然后使用Interface Builder将该视图控制器连接到应用程序委托中的插座。所有这一切都会导致nib加载过程在nib加载时为你设置该引用,以便它可以方便地从应用程序委托中获得。

但无论如何,你正在做的事情可能会有效,但是你可能需要在数组中强制转换指针,以便编译器知道你正在处理什么类,以及类是否有你试图调用的方法

所以试试:

MyViewControllerClass *controller = (MyViewControllerClass *)[tabBarController.viewControllers objectAtIndex:0];
[controller showData];

答案 1 :(得分:0)

你不需要转换你的FirstViewController吗?

[(FirstViewController *)[tabBarController.viewControllers objectAtIndex:0] showData]