我對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行,我不確定你需要看到什麼。 –