2016-09-26 11 views
0

私は一連のView Controllerを持っています。 1人は家に電話をかけ、10人はあなたが順番にナビゲートします。ホーム - > 1 - > 2 - > 3など。 すべてのビューコントローラには「ホーム」ボタンがあり、最初の「ホーム」ビューコントローラに戻ります。各VCから「ホーム」VCへの10の別個のセグを作成するのではなく、これを行う効率的な方法はありますか?同じ宛先に複数のセグメントがあります

私は前後にナビゲートすると、同じビューコントローラのインスタンスを何度も何度も作成することなく、メモリの使用効率をできるだけ高くしたいと考えています。

ご協力いただきまして誠にありがとうございます。

+3

ホームビューコントローラでアンワインド '@ IBAction'を作成します。それから、他のView Controllerは、巻き戻しセグを実行できます。 http://stackoverflow.com/a/34013347/1271826を参照してください。またはApple [Technical Note TN2298](https://developer.apple.com/library/content/technotes/tn2298/_index.html)を参照してください。さらに、これらの他のセグのセグをホームシーンに戻す必要はありません。そのようなセグの円形セットは、放棄されたメモリにつながる可能性があります(つまり、家の重複インスタンスで不必要にメモリを使い果たしてしまいます)シーンのビューコントローラーなど)。 – Rob

+1

ナビゲーションスタックにそれらを押し込んでいる場合は、ルートビューコントローラにポップアップすることができます – pbush25

+0

あなたは '私が前後にナビゲートするように '言うので、間違いなくあなたの' homeVC'は 'NavigationVC'とあなたの' homeVC' 'rootVC'です。したがって、単に 'navigationController.popToRootViewController'を実行してください – Santosh

答えて

0

コメントありがとうございました。ナビゲーションコントローラに

埋め込みホームビューコントローラをホームビューコントローラに次のメソッドを追加します:この例で最善の行動だったそれらのコメントをもとに、次のように

@IBAction func unwindToViewController(_ sender: UIStoryboardSegue) {} 

を次に持つすべてのストーリーボードにホームボタン、トップバーのそれぞれのView Controller "exit"アイコンをControlキーを押しながらドラッグし、前に作成した 'unwindToViewController'メソッドを選択します。

これは、ルートVCにナビゲートするときにスタック内のすべてのVCを削除します。

関連する問題