我正在尝试在我的FirstViewController中调用一个方法,该方法是TabBar中第一个View的文件所有者。
我尝试过使用这行代码,但只是收到错误“找不到'-showData'的方法”:
[[tabBarController.viewControllers objectAtIndex:0] showData]
但是日志说明了这一点 [tabBarController.viewControllers objectAtIndex:0] 是我的FirstViewController:
答案 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]