2014-03-28 119 views
-2

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

的prolem是每个选项卡视图包埋在navgation控制器,以及即时得到一个错误,当我调用从所述第一视图控制器内的功能:

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

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

回答

0

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

0

您必须获得对该控制器的引用。当一个tabbarcontroller被设置时,它被赋予了选项卡和控制器(如果这不明显),并且这些都存储在属性中。因此让一提的是基本上是这样的片段:

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

从那里,你应该能够用在只要方法声明存在调用像任何其他对象方法的目标C

[viewController methodName]; 

。 h文件,那么你应该没问题。

UITabBarController Class Reference

+0

这是显而易见的,我试图做到这一点,但它并没有工作 – user3443572

+0

啊,好吧,那么我会是正确的假设你确保viewControllers数组不是零,并正确的假设你有控制器的正确索引? –

+0

是的,你是正确的 – user3443572

0

找到我的路,不得不这样做

[[[[self.tabBarController.viewControllers objectAtIndex:1] viewControllers] firstObject] MyFunction的]。

+0

哦,是[self.tabBarController.viewControllers objectAtIndex:1]是一个UINavigationController,它有一个viewControllers数组,你需要第一个:3。我的所有评论都不再需要XD了 –

相关问题