单击时将标签栏从一个标签栏移动到另一个标签栏(带有导航控制器的标签栏)

问题描述:

大家好我想从第一个tabbarcontroller继续到第二个tabbarcontroller,但无法这样做。在我的TabBar视图控制器还嵌有NavigationControllers,所以当我尝试切换标签它给了我错误saying-:单击时将标签栏从一个标签栏移动到另一个标签栏(带有导航控制器的标签栏)

无法投类型的值“的UINavigationController”(0x1048d5898)到 “abc.CategoriesController '(0x101088d88)。

代码我used-:

let barViewControllers = self.tabBarController?.viewController 
let svc = barViewControllers![1] as! myController 
svc.myOrder = self.myOrder 

我尝试了许多解决方案,但未能Segue公司任何人都可以帮我吗?如果有人能解释这个问题,请给我解释一下吗

self.tabBarController.selectedIndex = 1确实有效,但我无法通过此方法传递数据。

由于马迪所述 - :

使用let barViewControllers = self.tabBarController?.viewController[1] as? myController来传递数据。

但是,这是给我上面崩溃行

+0

错误对tabbatcontroller的[1]位置建议你得到的是UINavigationController你需要找到该导航控制器的所有堆栈 –

+0

不要将您的[1]投给myController将其转换为UINavigationController,以及在svc.viewControllers为您提供的所有堆栈viewController的navigationcontroller –

你得到了错误建议你从下面的代码得到的是不是的viewController如果你

let barViewControllers = self.tabBarController?.viewController //some what wrong with this 

访问所有观点最好的方法控制器是如下

var svc = self.tabBarController.viewControllers 

,如果你想通过他们的指数,然后访问以下viewControllers一个

var svc = self.tabBarController.viewControllers[1] as yourVC 

和最后但不是在列表中,如果你想从使用TabBar访问导航控制器

var svc = self.tabBarController.viewControllers[1] as UINavigationController 

希望这有助于你:)

+0

不会导致崩溃但不甚至switchi ng标签,而且最后这一步我将如何发送数据到特定的控制器。 –

+0

你可以使用var svc = self.tabBarController.viewControllers [1]作为你的VC传递数据,并切换选项卡,你可以用self.tabBarController.selectedIndex去,并确保你所有追逐你的viewWillappear你的目标标签 –

+0

已更新回答。 –