【发布时间】:2019-03-06 08:21:45
【问题描述】:
在AppDelegate之外,我想更改它的rootViewController。换句话说,我想在我之前的窗口中放置一个新的导航控制器,然后在这个导航控制器中推送新的控制器:
func JumpToPage(_ controller: UIViewController) {
guard let rootController = AppDelegate.shared?.presentationViewController else {
return
}
let navigationController = UINavigationController(rootViewController: rootController)
navigationController.pushViewController(controller, animated: true)
AppDelegate.shared?.window?.rootViewController = navigationController
}
}
但是这个函数会导致应用程序崩溃并显示以下错误消息:
Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency',
reason: 'adding a root view controller <MyExampleController> as a child of view controller:<UINavigationController>'
我该如何解决?
【问题讨论】:
标签: ios swift uiviewcontroller uinavigationcontroller appdelegate