0

現在、UIViewControllers のスタックがあり、それぞれが前のものの上に表示されるモーダル ViewController です。私の問題は、UIViewControllers のスタックが必要ないことです。最後の 1 つだけが必要です。したがって、新しい UIViewController が提示されると、その親はパージされ、メモリから完全に削除されます。私のアプリは、これらのビューコントローラーを二度と必要としません。

私はこれを読みました: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ViewLoadingandUnloading/ViewLoadingandUnloading.html

ただし、このパターンは、アプリがメモリ警告を受け取った場合のメモリ解放のみを考慮します。また、ViewController はパージせず、コンテンツのみをパージします。もっと手動でやりたいのですが...これは可能ですか、それともiOSでは一般的ではないので、メモリ警告メッセージのみに頼るべきです。

4

2 に答える 2

1

最も簡単な方法は、最初からスタックを作成しないようにすることです。既存のものの上に新しいモーダル コントローラーを提示する代わりに、ルート コントローラーを最初に既存のものを破棄し、それぞれの新しいものを提示します。

于 2012-12-10T12:45:23.757 に答える
0

素敵な解決策を見つけたかもしれません。UINavigationController を使用し、その viewContollers プロパティ (UIViewControllers のスタック) を手動で管理する必要があります。新しい UIViewController がロードされた後 (またはロードされる前) に、古い UIViewController をスタックから削除して、メモリからパージすることができます。

この投稿は役に立ちまし た:UINavigationControllerからビューをポップして、1回の操作で別のビューに置き換えるにはどうすればよいですか?

このようにして、一度にUIViewControllerがメモリ内にある場合にのみプログラムフローを作成し、新しいUIViewControllerが必要なときにそれらを置き換えることができます。

于 2012-12-10T14:33:55.327 に答える