Ios 如何在swift中访问UITabbarController上的ViewController?

Ios 如何在swift中访问UITabbarController上的ViewController?,ios,swift,uitabbarcontroller,Ios,Swift,Uitabbarcontroller,我正在尝试获取tabbarcontroller的第二个viewcontroller,这样我就可以PoptRoot了,但是Swift告诉我使用Int作为下标是无效的,我必须使用AnyObject作为索引 var controller = self.viewControllers[2] as! UIViewController 错误为“无法为[AnyObject]类型的值下标”带Int的viewcontrollers数组基于零,因此第一个控制器的索引为0,第二个控制器的索引为1 所以对于第二个控制

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

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

错误为“无法为[AnyObject]类型的值下标”

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


var controller=self.viewControllers![1] 作为!UIViewController

要获取实际的ViewController实例:

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

除了从零开始的索引问题外,请确保在回答中也指出self.viewControllers是可选的。您在订阅之前将其展开,这就是@angel_of_代码丢失的内容,因此报告了错误。
var controller = self.viewControllers![0].childForScreenEdgesDeferringSystemGestures