3

ログイン画面と登録画面の2つの画面を備えたシンプルなiPhoneアプリを開発しているとしましょう。ログイン画面には、登録画面に移動する「登録」ボタンがあります。同様に、登録画面内には、ログイン画面に移動する「ログイン」ボタンがあります。すべては、iOSStoryboardSegueの「モーダル」スタイルを使用して実装されます。

問題は、ビューコントローラがセグエの「モーダル」スタイルで表示されるたびに、スタックに新しいビューを追加し続けるかどうかです。したがって、ログイン画面と登録画面を繰り返し切り替えると、毎回新しいオブジェクトがインスタンス化され、内部配列コンテナ(つまりスタック)に蓄積され続けますか?

さらに、スタイルを「プッシュ」に変更した場合、同様の質問の状況はどのようになりますか?「プッシュ」は、「プッシュ」されるたびに新しいビューオブジェクトを上部に追加し続けませんか?

4

2 に答える 2

3

@trapperは絶対に正しいです。dismissViewControllerAnimated:completion:セグエはそれらを積み重ねますが、「モーダル」をで閉じるか、プッシュされたView Controllerをでポップする限り、リークは発生しませんpopViewControllerAnimated:。ログイン/登録画面からメインビューに誤ってセグエが戻った場合、そのメモリは解放されません(これは技術的にはリークではありませんが、間違っており、メモリを解放しません)。

于 2012-05-14T15:18:54.897 に答える
1

はい、どちらの方法でもスタックし続けます。

ただし、明確にするために、リークは発生しません。

于 2012-05-14T13:53:06.857 に答える