問題:ビューコントローラーでナビゲーションコントローラーへのハンドルを取得しようとしていますが、常にnilが返されます。以下は私のコードです
階層:AppDelegate-> MainStoryboard-> nav Drawer-> TestingStoryboard-> tests
ナビゲーションドロワーから、以下のようにviewControlを開きます。
self.openNewStoryBoard(storyBoard: "testingone", scene: "initial")
func openNewStoryBoard(storyBoard:String, scene:String){
let storyboard = UIStoryboard(name: storyBoard, bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: scene) as UIViewController
self.present(controller, animated: true, completion: nil)
}
「testingone」ストーリーボードに、リレーションシップを介してviewContorller「initial」に接続するnavigationcontrollerがあります。「rootviewcontroller」から「viewController」に接続し、これをtesttingoneクラスに接続しました。
code(testingOne)クラスで、以下のようにnavigationcontrollerへのハンドルを取得しようとしています:
self.rootNav = self.navigationController!
しかし、それは常にゼロになります
ビューコントローラーを直接提示することで、ナビゲーションコントローラーをすべて一緒にバイパスすることになります。そのためnil
、を呼び出すときに取得しますself.navigationController
。代わりに、ナビゲーションコントローラーを提示する必要があります。
これを行うには、ストーリーボードinitial
で、ビューコントローラーの代わりにナビゲーションコントローラーのストーリーボードIDを設定するだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加