2016-11-07 7 views
0

下のリンクは私のストーリーボードを示しています。私の問題は画像では分かりやすいと思います。 私のtabBarControllerは、navigationControllerに埋め込まれたタブを管理します。 UIButton "start"はショーセグの次のビューに進みます(青い矢印)。このビューでは、棒ボタン項目は最後のviewControllerに戻り、もう一度ショーセグ(緑色の矢印)を表示します。最後のビューコントローラーから、私は最初のものに戻って、もう一度バーボタンの項目(黒い矢印)に戻したいと思います。しかし、今問題があります。私の最初のビューコントローラーは左上に「戻る」ボタンを表示します(もちろん、黒い矢印で最初のビューがナビゲーションスタックに追加されただけなので)。私はこれをタブバーコントローラ(赤い矢印)に戻って解決しました。今では "戻る"ボタンはもうありませんが、私のナビゲーションビューのスタックが背景にまだ存在し、メモリやそれに類するものを無駄にしていないかどうか疑問に思っています。このスタックを削除するにはどうしたらいいですか? (たぶん私はこれを完全に間違っている)または最初のビューに戻るためのよりよい方法がありますか?ナビゲーションビューの「スタック」を削除するXcode swift

申し訳ありませんが私の問題の専門家の説明が、私はちょうどまだいくつかの問題のための正しい言葉を持っていないようにコーディングを開始しました。

ありがとうございます!

my Storyboard looks like this

+0

ありがとうございました – PeejWeej

答えて

1

私はそれを正しく理解している場合、あなたはあなたの最後のビューコントローラがナビゲーションスタックの初期ビューコントローラにナビゲートします。最後のビューコントローラでは、次のコードをコードに追加できます。

 override func viewDidLoad() { 
    super.viewDidLoad() 
    //this will add a button to top right of the nav bar, 
    //change "ButtonName" to a title you want 
    //this button will call the blackArrow function 
    self.navigationItem.rightBarButtonItem = UIBarButtonItem (
     title: "ButtonName", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.blackArrow)) 
} 


func blackArrow() { 
//this function navigates to the initial view controller of the navigation controller 
if let navigationController = self.navigationController { 
    navigationController.popToRootViewController(animated: true) 

    } 
} 
+0

ありがとうございました!そして、私はviewControllersのスタックを削除する必要がありますかスタックは、私はその1つに戻った場合は、ルートビューコントローラのみに縮小されますか? –

+0

必要に応じてビューコントローラのスタックを削除する必要はなく、ルートビューコントローラのみに縮小されません。ナビゲーションコントローラは最初のビューを表示するだけで、青と緑の矢印のような最初のような、それに接続された他のビューコントローラをナビゲートすることができます。 –

関連する問題