大家好我想从第一个tabbarcontroller到第二个tabbarcontroller但不能这样做。我的TabBar中的视图控制器也嵌入了NavigationControllers,所以当我尝试切换标签时,它给出了错误说 - :
无法将类型'UINavigationController'(0x1048d5898)的值转换为 'abc.CategoriesController'(0x101088d88)。
我使用的代码 - :
let barViewControllers = self.tabBarController?.viewController
let svc = barViewControllers![1] as! myController
svc.myOrder = self.myOrder
我尝试了很多解决方案,但是没有人能帮助我吗?如果有人可以,请解释一下这背后的概念吗?
self.tabBarController.selectedIndex = 1
确实有效但我无法使用此方法传递数据。
正如 Maddy 所说 - :
使用let barViewControllers = self.tabBarController?.viewController[1] as? myController
传递数据。
但这就是让我崩溃的路线
答案 0 :(得分:3)
你得到的错误表明你从下面的代码得到的东西不是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
如果要从标签栏访问导航控制器,请并在列表中输入
var svc = self.tabBarController.viewControllers[1] as UINavigationController
希望这可以帮助你:)