2017-01-20 4 views
0

2つのストーリーボードがあります。 Main.storyboardの ボタン付きのビューコントローラがあります。ボタンをクリックすると、2番目のストーリーボードSecond.storyboardが読み込まれます。これは、「問題は、実行時、私はドンことである私はSecond.storyboardでSecond.storyboard2番目のストーリーボード使用時にナビゲーションコントローラの戻るボタンが表示されない

DispatchQueue.main.async { 
    let storyBoard : UIStoryboard = UIStoryboard(name: "Second", bundle:nil) 

    let nextViewController = storyBoard.instantiateViewController(withIdentifier: "Tools") as UIViewController 
    self.present(nextViewController, animated:true, completion:nil) 
} 

をロードするために使用するコードIは、ナビゲーションコントローラと2ビューコントローラAを有し、B.

ありますBの戻るボタンを参照してAに戻ります。

私が試したこと: 私は別のプロジェクトを作成しました。私はmain.storyboardにナビゲーションコントローラと2つのビューコントローラAとBを組み込んだ。これは正常に動作します。戻るボタンが表示されます。これは、私は2番目のストーリーボード

をロードするとき、私は何かが欠けていていることを教え、私はこのラインDispatchQueue.main.async {}せずにストーリーボードをロードするいくつかのサンプルを参照してください。この

// Do any additional setup after loading the view. 
self.title = "Title" 

let navigationBar = navigationController!.navigationBar 
navigationBar.tintColor = UIColor.blue 

let leftButton = UIBarButtonItem(title: "Left Button", style: UIBarButtonItemStyle.plain, target: self, action: nil) 
let rightButton = UIBarButtonItem(title: "Right Button", style: UIBarButtonItemStyle.plain, target: self, action: nil) 

navigationItem.leftBarButtonItem = leftButton 
navigationItem.rightBarButtonItem = rightButton 

を追加しようとしています。しかしながら;私はそれを使用しない場合、私はエラーが発生し、プログラムがクラッシュします。

ナビゲーションコントローラを追加するにはどうすればよいですか?最初のView Controller、Editor、Embed in、Navigation Controllerを選択します。

2番目のストーリーボードにナビゲーションコントローラを表示しようとしていて、戻るボタンが表示されていません。

これは、私がやろうとしている2番目のアプリケーションであると言う針です。どんな助けでも大歓迎です。

答えて

1

「Second」を提示した後、あなたは何を見ていますか?あなたはnav header/titleエリアをまったく見ていますか?ちょうどバックボタンが欠けていますか?

  • どのようにAからBをプッシュしていますか?

  • 「ツール」は「Second」のナビゲーションコントローラではないと思われます。あなたはナビゲーションコントローラを参照することにしたいstoryBoard.instantiateViewController(withIdentifier: "Tools")を呼び出す場合 - presentViewControllerを呼び出していないA.

+0

グラハムPerks、コードの一部をありがとう。残念ながら;次のView Controllerはロードされません。エラーはありません。次のビューはロードされません。 –

+0

ああ、申し訳ありませんが、私は誤解しました。私は私の答えを変えました。 –

+0

これは、2番目のストーリーボードをロードする方法です。 DispatchQueue.main。非同期{ LETストーリーボード:UIStoryboard = UIStoryboard(名称: "第二"、バンドル:なし)真、終了:アニメーションのUIViewController self.present(nextViewControllerとして nextViewController = storyBoard.instantiateViewController( "ツール" withIdentifier)とします。 nil) }。私はタイトルが見えない、私は戻るボタンが表示されません。 –

0

は、既存のナビゲーションスタックの外に、モーダルビューコントローラを提示します。それはあなたのUINavigationControllerまたは他のものによって含まれていません。むしろモーダルそれを提示するよりも、既存のナビゲーションスタックに

プッシュ新しいビューコントローラ:あなたの新しいビューコントローラがナビゲーションバーを持つようにしたい場合は、次の2つの主要なオプションを持っている

せVC1 = self.storyboard !.instantiateViewControllerWithIdentifier( "MyViewController")として! ViewControllerを self.navigationController .pushViewController(VC1、アニメーション:真)!

私はこのposthttpでこの答えを見つけました://stackoverflow.com/questions/25444213/presenting-viewcontroller-with-navigationviewcontroller-swift

関連する問題