我对Swift比较陌生 尝试使用peek和pop previewActionItems“edit”以编辑模式打开SpeciesDetailViewController。有一个问题试图让赛格呈现SpeciesDetailViewController并得到错误消息"Warning: Attempt to present SpeciesDetailViewController whose view is not in the window hierarchy"
。我在found here上实施了雅各布戴维斯的解决方案。NavigationController在调用rootViewController后不显示
这固定了窗口层次结构错误,但是当调用SpeciesDetailViewController控制器时,导航控制器和tabBarController都不显示。
虽然我相信这是由SpeciesDetailViewController引起被称为是顶级的viewController,我就如何解决这一问题的损失。
你能帮我显示导航控制器和tabBarController吗?
下面是我当前的代码:
主视图控制器
func showDetailsViewController() {
let topVC = topMostController()
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "SpeciesDetailViewController") as! SpeciesDetailViewController
topVC.present(vc, animated: true, completion: nil)
}
func topMostController() -> UIViewController {
var topController: UIViewController = UIApplication.shared.keyWindow!.rootViewController!
while (topController.presentedViewController != nil) {
topController = topController.presentedViewController!
}
return topController
}
谢谢Grzegorz。但是,我必须承认我对如何实现这一点有点失落。你能举一个关于显示NavigationBar的例子吗? –
我不完全确定,也许我误解了你的问题 - 你可以用UIViewController层次结构编辑你的问题,你想在哪里显示新的UIViewController? –
Grzegorz,我改变了一些,但由于我在班级中有大约3000行,我不确定你需要看到什么。 –