0

多くのビューを持つアプリケーションがあります。最初のビューで [次へ] ボタンをクリックすると、2 番目のビューが表示されます。現在、私は次のようにこれを行っています:

NextView *second = [[NextView alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:second animated:YES];

ただし、このアプリケーションでは、最初のビューからの情報を保持する必要はもうありません。2 番目のビューを表示し、メモリから最初のビューの割り当てを解除する方法はありますか? 5 つのビューを続けて表示し、それらがすべてモーダルである場合、本当に必要なメモリをさらに使用することになると考えていました。ユーザーが戻るボタンを押した場合、最初のビューも開き、2 番目のビューをメモリから削除したいと思います。

メモリを節約するためにこれを行う方法はありますか、それともこのメモリは私が心配する必要のないものですか?

4

3 に答える 3

0

ぜひ使ってみてくださいUINavigationController。スタックに新しいView ControllerをプッシュするとpushViewController:animated:、「戻る」ボタンのあるナビゲーションバーが無料で表示されます。これpopToViewController:animated:で、最初のView Controllerに戻ることができます。

UINavigationController非常によく文書化されており、サンプルプログラムがたくさんあります。私はまだ Storyboard を使用していませんが、これにより、ナビゲーション コントローラー ベースの一連のビューの作成がさらに簡単になるはずです。

ビューをメモリから解放することを気にする必要はありません。メモリが少ない場合、ビューは自動的にアンロードされます。ビュー コントローラが大量の追加メモリを割り当てる場合は、実装didReceiveMemoryWarningしてそのメモリを解放する必要があります。詳細については、View Controller のライフ サイクルを参照してください。

于 2012-08-13T07:10:39.400 に答える
0

ナビゲーションバーを使用して非表示にし、ここで正しいとマークされた回答を使用する必要があると思います。

iPhone - ナビゲーション コントローラーの rootview を置き換える

于 2012-08-13T07:16:58.423 に答える
-1

次のビューに移動しながら、次のようにリリースを追加します

NextView *second = [[NextView alloc] init];
[self presentModalViewController:second animated:YES];
[second release];
于 2012-08-13T05:41:39.787 に答える