私はSwiftに比較的新しいです peekとpop previewActionItemsを使用しようとすると、編集モードでSpeciesDetailViewControllerを開きます。 SegueにSpeciesDetailViewControllerを表示する際に問題が発生し、エラーメッセージ"Warning: Attempt to present SpeciesDetailViewController whose view is not in the window hierarchy"
が発生しました。 found hereにJacob Davisのソリューションを実装しました。NavViewControllerがrootViewControllerの呼び出し後に表示されない
これはウィンドウ階層のエラーを修正しましたが、SpeciesDetailViewControllerコントローラが呼び出されると、ナビゲーションコントローラとtabBarControllerの両方が表示されません。私はこれがトップのViewControllerと呼ばれてSpeciesDetailViewControllerによって引き起こされると考えているが
、私はこの問題を解決する方法についての損失でいます。
ナビゲーションコントローラと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
}
Thanks、Grzegorz。しかし、私はこれを実装する方法が少し失われていることを認めなければなりません。 NavigationBarを表示する例を挙げることができますか? –
あなたが持っているUIViewController階層を使って質問を編集できますか?正確に新しいUIViewControllerを表示したいのですか? –
Grzegorz、私はそれをいくつか変更しましたが、私はクラスで約3000行を持っているので、私はあなたが何を見る必要があるか分かりません。 –