如何在其他选项卡控制器中运行功能

时间:2014-03-28 21:15:15

标签: ios objective-c uitabbarcontroller

所以我有一个标签栏导航控制器,我的应用程序加载了第一个控制器选择我的问题是如何在其他控制器中运行一个功能,即使没有选择它们。

问题是每个标签视图都嵌入在一个导航控制器中,当我从第一个视图控制器调用该函数时,我得到一个错误:

[[self.tabBarController.viewControllers objectAtIndex:1] myfunction];

[UINavigationController myfunction]:无法识别的选择器发送到实例0x8d83ff0

3 个答案:

答案 0 :(得分:0)

控制器是一个对象。您可以向对象发送消息。它回答了你的问题吗?

答案 1 :(得分:0)

您必须获得对该控制器的引用。设置tabbarcontroller时,它会给出选项卡和控制器(如果这不明显),这些都存储在属性中。所以获得参考基本上就是这个片段:

UIViewController *viewController = self.tabBarController.viewControllers[indexOfViewController];

从那里你应该可以调用方法c中的任何其他对象的方法

[viewController methodName];

只要方法声明存在于.h文件中,那么你应该没问题。

UITabBarController Class Reference

答案 2 :(得分:0)

找到了我的方式,不得不这样做

[[[[self.tabBarController.viewControllers objectAtIndex:1] viewControllers] firstObject] myfunction];