无法将类型' UINavigationController的值转换为tabBarController

时间:2017-10-04 06:04:20

标签: ios xcode swift3

我正在尝试将数据从一个tabBarController传递到第二个tabBarController,但我收到错误,我尝试了很多方法,但数据没有传递

无论如何

是他们在标签之间传递数据吗?

我正在尝试使用此代码,但我收到错误"无法将类型' UINavigationController的值转换为CategoriesViewController"

enter code here



    let barViewControllers = self.tabBarController?.viewControllers

    let svc = barViewControllers![1] as! CategoriesViewController 

    svc.categoriesData = self.categoryProductsDict  //shared model

1 个答案:

答案 0 :(得分:3)

let svc = (barViewControllers![1] as! UINavigationController).viewControllers[0]

我相信所有tab viewControllers都有嵌入式导航控制器。因此,当您从选项卡viewController访问viewController时,您将获得UINavigationController。要访问VC,您必须在NavigationController的索引0处获取viewControllers

更清洁更安全的代码

if let vc = (self.tabBarController.viewControllers![0] as? UINavigationController)?.viewControllers[0] as? CategoriesViewController {
   //access your VC here                            
}