我正在尝试获取tabbarcontroller的第二个viewcontroller,所以我可以使用popToRoot,但是Swift告诉我使用Int作为下标是无效的,我必须使用AnyObject作为索引
var controller = self.viewControllers[2] as! UIViewController
错误是“无法使用Int”
下标[AnyObject]类型的值?答案 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
}
}
,则必须测试要放入的索引号:UINavigationControllers
或 viewControllers?[0]
或其他。