2

6つのビューコントローラーとそれぞれのビューを備えたストーリーボードがあります。これらの6つのビューコントローラーに関連付けられているナビゲーションコントローラー はありません。

あるビューコントローラから別のビューコントローラに移動するには、スワイプジェスチャレコグナイザをモーダルセグエと一緒に使用します。すべてのビューコントローラには、少なくとも1つ、場合によっては2つのスワイプジェスチャベースのモーダルセグエが他のビューコントローラにあります。

私の質問は、私は記憶について心配する必要がありますか?スワイプすると、これらのビューコントローラーがメモリに無限に追加され、最終的にアプリがクラッシュしますか?

たとえば、最初のVCにいて、右から2番目のVCまでスワイプしてから、もう一度右から3番目のVCまでスワイプし、左に2回スワイプして最初のVCに戻ると、メモリに次の情報が含まれます。

メモリ:最初のVC、2番目のVC、3番目のVC、2番目のVCの別のコピー、最初のVCの別のコピー?

ばかげた質問のように思えますが、プログラミングを始めたのは数日前なので、メモリの問題が発生するのではないかと非常に心配しています。

私はあなたの考えとこの問題を議論する場所への潜在的に役立つリンクをいただければ幸いです。

4

2 に答える 2

1

良い質問があります。それは、ViewControllerをどのように作成および却下するかによって異なります。通常、あなたが言及したようなデザインは、UINavigationControllerやUIPageViewControllerなどの組み込みコントローラーを使用して、またはスクロールビューを使用して構築されます。

新しいViewControllerを「提示」している場合は、それらを削除するために閉じる必要があります。却下しない場合は、ビューコントローラが固執します。

セグエを使用している場合は、各セグエが新しいインスタンスを作成することに注意してください。

あなたの論理が一般的に言うなら-右にスワイプ:新しいモーダルセグエ、左にスワイプ:却下、そしてあなたは行くにつれて片付けます。これは、右にスワイプするたびに新しいインスタンスが作成される場合に機能します。

6つのViewControllerを常にメモリに保持する必要がある場合は、pageViewControllerの使用を検討するか、独自のソリューションを使用することをお勧めします。スクロールビューを使用して説明するようないくつかの優れたソリューションを見てきました。

スクロールビューを使用する場合は、基本的に配列を作成し、View Controllerの6つのインスタンスを配列にロードしてから、水平スクロール用にスクロールビューをロードします。ジェスチャレコグナイザーと左右のスワイプ用のロジックを追加すると、優れた水平ページスクローラーができます。

これは、あなたが説明している解決策を解決するように思われる非常に優れたリファレンスとチュートリアルです。http://www.wannabegeek.com/?p=168

幸運と新年あけましておめでとうございます。

于 2013-01-04T20:43:45.017 に答える
0

ビュー(またはボタンなどのサブビュー)への強い参照を保持しない限り、必要に応じて割り当てが解除されます。

于 2013-01-04T20:15:21.477 に答える