2010-01-18 72 views
1

我想在我的FirstViewController中调用一个方法,它是TabBar中第一个视图的文件所有者。iPhone SDK:如何访问从MyAppDelegate嵌套在TabBar中的ViewController?

我使用这行代码,但只得到错误尝试“否‘-showData’的方法找到了”:

[[tabBarController.viewControllers objectAtIndex:0] showData] 

但日志说 [tabBarController.viewControllers objectAtIndex:0] 是我的FirstViewController:

回答

4

通常情况下,您要做的是在应用程序委托中声明一个指向视图控制器的IBOutlet,然后使用Interface Builder将该视图控制器连接到应用程序委托中的插座。所有这些都会导致nib加载过程在加载nib时为您设置该引用,以便在应用程序代理中使用它。

但无论如何,你在做什么可能会工作,但你可能需要在数组中指针,以便编译器知道你正在处理什么类,以及类是否有你想要的方法呼叫。

所以尝试:

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

难道你要投你FirstViewController?

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