如何在swift中访问UITabbarController上的viewControllers?

时间:2015-07-29 09:40:22

标签: ios swift uitabbarcontroller

我正在尝试获取tabbarcontroller的第二个viewcontroller,所以我可以使用popToRoot,但是Swift告诉我使用Int作为下标是无效的,我必须使用AnyObject作为索引

var controller = self.viewControllers[2] as! UIViewController

错误是“无法使用Int”

下标[AnyObject]类型的值?

4 个答案:

答案 0 :(得分:9)

var controller = self.viewControllers![2] as! UIViewController

答案 1 :(得分:0)

viewcontrollers数组基于零,因此第一个控制器的索引为0,第二个控制器的索引为1 所以对于第二个控制器,代码应该是

var controller = self.viewControllers![1] as! UIViewController

答案 2 :(得分:0)

要获取实际的ViewController实例:

var controller = self.viewControllers![0].childForScreenEdgesDeferringSystemGestures

答案 3 :(得分:0)

如果 use PublicFlags::*; 嵌套在 UIViewController 中:

UINavigationController

如果您有多个可用的 if let destNav = viewControllers?[1] as? UINavigationController { if let destVC = destNav.children.first as? YourViewController { //do stuff } } ,则必须测试要放入的索引号:UINavigationControllersviewControllers?[0] 或其他。