2016-05-23 17 views
0

マイビュー階層は、下の画像のようになります。enter image description here私はこの警告私はビューを提示しようとする「ビューウィンドウ階層にないのViewControllerを提示しようとする試みを」持っ

私の問題は、私は時にVC1を表示したいです私はVC3の任意のボタンをクリックします。ここに私のコード

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let vc = storyboard.instantiateViewControllerWithIdentifier("registerNavigation") 
self.presentViewController(vc, animated: false, completion: nil) 

はあるが、私はこの警告「警告:ビューウィンドウ階層にないのViewController提示しようとする試み」だと何が起こるの。教えてください、私は何が間違っていましたか?

+0

こんにちは[記事](http://pinkstone.co.uk/how-to-avoid-whose-view-is-not-inを助ける

・ホープあなたの問題を完全に解決し、あなたが得ている警告の根を理解してほしいと願っています。 – vaibhav

答えて

2

VC1からVC1を表示する場合は、既にナビゲーションスタックにロードされているため、再度表示する必要はありません。あなたはちょうどdismiss or popナビゲーションスタックからVC3とVC2する必要があります。あなたがそれを提示した場合、それを却下し、それを押してしまえば、それをポップした。

あなたの警告の意味は、ナビゲーションコントローラ1のビュー階層にありますが、ナビゲーションコントローラ2のビュー階層にはないものを表示しようとしています。これは親切にこれを見て愛する:)

+0

それは魔法のように機能します。私はそれを却下し、VC1を表示します。ありがとうございました。あなたは私の日を救う。 – Inuyasha

0

navigationControllerにプレゼンテーションしていますので、以下のようなコードを使用してください。

let VC1 = self.storyboard!.instantiateViewControllerWithIdentifier("registerNavigation") as! ViewController 
let navController = UINavigationController(rootViewController: VC1) 
self.presentViewController(navController, animated:true, completion: nil) 
+0

あなたのコードを使用しようとするとこのエラーが発生します。 "Terminatingアプリケーションがキャッチされていない例外 'NSInvalidArgumentException'のために、理由: 'ナビゲーションコントローラを押すことはサポートされていません' ' – Inuyasha

関連する問題