2012-02-29 5 views
2

"現在の"ナビゲーションコントローラに何かをプッシュしようとしていますが、それは行っていません。グローバルナビゲーションコントローラを使用しているiOS

[[[[[[UIApplication sharedApplication] delegate] window] rootViewController] navigationController] presentModalViewController:myView animated:YES];はなぜ機能しませんか?

+3

おそらく 'navigationController'が' nil'であるためです。 – sch

答えて

5

[[window rootViewController] navigationController]は、rootViewControllerを含むナビゲーションコントローラを指します。ルートコントローラはどのナビゲーションコントローラ内にもないので、常にnilになります。

おそらくrootViewControllerはナビゲーションコントローラ自体です。その場合、以下のコードを使用することができます:

[[[[[UIApplication sharedApplication] delegate] window] rootViewController] presentModalViewController:myViewController animated:YES] 

ところで、あなたはモーダルビューを提示することはできません、あなたはコントローラを提示する必要があります。

3

navコントローラはありますか?私の推測はそれは無です。作成する必要があります。プロパティは常に存在しますが、navコントローラが存在しない場合はnilです。

1

MainWindow.xibファイルを使用していますか?もしそうなら...あなたのパレットにUINavigationControllerを追加し、あなたのApp DelegateからUINavigationControllerへの参照を作成する必要があります。

関連する問題