UINavigationController
2番目のビューコントローラーにプッシュセグエを行うメインがあります。2 番目のビューには、元に戻る戻るボタンがあります。がviewDidLoad
2 番目の ViewController で呼び出されると、ファイルからのデータの読み込みやバックグラウンド ノイズのサンプリングなど、多くの初期化が行われます。これは 1 回だけ実行する必要がありますが、2 番目のビューが実際にロードされている場合にのみ必要です。私の問題は、プッシュ セグエが発生するたびに、2 番目のビューのまったく新しいインスタンスが作成され、初期化プロセス全体が再び発生することです。1 秒のビューを保持し、その後のプッシュ セグエが発生したときにそれを再表示するにはどうすればよいですか?
1 に答える
2
別の方法で進めることをお勧めします。iOS に ViewController の有効期間を処理させ、データとコストのかかる初期化をそこから切り離します。作業を行うシングルトン クラスを作成するか、ルート ビュー コントローラーが所有して 2 番目のビュー コントローラーに渡すことができます。Storyboards が思い通りに動作するとは思えませんし、これに関して iOS と戦う正当な理由があるようには思えません。
または、iOS5 より前の方法でそれを行い、2 番目の ViewController を使用してインスタンス化し、initWithNibName:bundle
それを nav スタックにプッシュすることもできますpushNavigationItem:animated
。
于 2012-11-30T07:29:33.077 に答える