自分で解決策を見つけることができない問題に遭遇したので、あなたの助けが必要です. 以下では、アプリの構造を説明し、次に問題を説明します。
RootViewController クラスは、画面に表示されるビューを管理します。RootViewController の viewDidLoad メソッドでは、他の 2 つのビュー コントローラーが割り当てられています。1 つは DocumentViewer と呼ばれ、アプリのどこからでも modalViewController としてビューに追加できます。もう 1 つは MapViewController と呼ばれ、ループ ビデオ、画像、およびいくつかのボタンを含むビューが含まれています。これらの各ボタンにより、MapViewController.view が RootViewController.view から削除され、別の ViewController が RootViewController に割り当てられ、そのビューが RootControllers ビューに追加されます。あなたがフォローできるように、これらの ViewControllers を NewViewController と呼びます。このビューの切り替えは、RootViewController の switchViews というメソッドによって発生します。
NewViewControllers によって制御されるビューには、ナビゲーション バー内にセグメント化されたコントロールが含まれるようになりました。この ViewController の viewDidLoad メソッド内で、他の 4 つの viewController が割り当てられています。そのうちの 3 つには webView が含まれ、最後の 1 つには 5 つの画面サイズの画像が含まれています。すべてがviewArrayという配列に格納されています。セグメント化されたコントロールの値が変更されるたびに、スーパービューを持つ配列内のすべてのビューを削除するメソッドが呼び出されます。スーパービューは常に現在表示されているビューのみです。 segmentedControl 要素のインデックスなので、インデックス 0 のセグメントは [viewArray objectAtIndex:0] をロードします。ナビゲーション バーのボタンは、RootViewController の switchViews メソッドを呼び出して、現在のビューを削除し、MapViewController.view を再度追加します。
これは私のアプリケーションであり、ご想像のとおり、メモリ警告の問題が発生しています。たとえば、NewViewControllers ビューで DocumentViewer を呼び出し、pdf をその webView にロードすると、メモリ警告が表示され、アプリがクラッシュします。
私はARCを初めて使用していて、Objective-Cの経験もあまりないので、メモリ使用量を許容レベルに保つために、viewControllerの割り当てをnilなどに設定する場所がわかりません。
アプリのクラッシュを防ぐために、変更を加えたり、コンテンツをアンロードしたりする必要がある場所を誰か教えてもらえますか? または、そのような問題を防ぐ方法を説明するチュートリアルへのリンクを投稿してください。