UITabViewController,带有UINavigationController作为选项卡

时间:2016-12-02 15:35:36

标签: ios uiviewcontroller swift3 uitabbarcontroller

我有UITabBarController的两个标签共享数据。第一个选项卡负责生成和更新第二个选项卡使用的数据数组。

我在标签之间共享数据的原始方法有效。

                      ------UIViewController
---UITabBarController
                      ------UIViewController

使用上面的方法,我从第一个标签中访问了数据数组:

let pointsViewController = self.tabBarController?.viewControllers?.first as! ShowPointsViewController
tableHeaders = pointsViewController.tableHeaders 

ShowPointsViewController是第一个标签

以下是我的问题: 当我将第一个UIViewController嵌入UINavigationController然后尝试使用下面的代码访问我的数据数组时,我收到运行时错误,因为.first...之后的代码返回为nil。我知道我错误地访问了这个,获得相同结果的正确方法是什么?

 let pointsViewController = self.tabBarController?.viewControllers?.first?.navigationController?.topViewController as! ShowPointsViewController

1 个答案:

答案 0 :(得分:0)

self.tabBarController?.viewControllers?.first?是您的navigationController,因此您在导航控制器上调用.navigationController,返回nil

要解决此问题,请从通话中删除.navigationController

let pointsViewController = self.tabBarController?.viewControllers?.first?.topViewController as! ShowPointsViewController