您可以通过以下方式获取root权限:
self.navigationController!.viewControllers.first
或者作为扩展:
extension UINavigationController {
var rootViewController : UIViewController? {
return viewControllers.first
}
}
然后你可以像这样使用它:
if let rootv = navigationController?.rootViewController { }
as? UIViewController
可以被移除,因为 first
已经返回了一个 UIViewController?
。另外,在你的第二个代码片段中,应该是 navigationController?.rootViewController
,因为它是可选的。 - nygself.navigationController.visibleViewController
或者
self.navigationController.topViewController
topViewController
将成为根视图控制器。 - mazen替换
let homevci = controllerArray.objectAtIndex(0) as? NBHomeVC
使用
let homevci = controllerArray.first as? NBHomeVC
或者
let homevci = controllerArray[0] as? NBHomeVC
let homevci = navigationController!.viewControllers!.first as! NBHomeVC
。 - Igor Bidiniuc