「メモリ警告」の後にメモリを解放するために、スタック内のすべてのビューコントローラ (ルートを除く) を削除したいと考えています。
最後のコントローラーで popToRootViewController を実行します。
プロセス:ルート (プッシュ) -> AController (プッシュ) -> BController (メモリ警告の後、戻る) -> ルート
(BController 内)
- (void)didReceiveMemoryWarning {
CMLog(@"BController");
[super didReceiveMemoryWarning];
CMLog(@"[allControllers lastObject]");
[self.navigationController popToRootViewControllerAnimated:NO];
}
ログ
- メモリ警告を受信しました。
- [RootViewController didReceiveMemoryWarning]
- [AController didReceiveMemoryWarning]
- [BController didReceiveMemoryWarning]
- [BController didReceiveMemoryWarning]:[allControllers lastObject]
- (popToRootViewControllerAnimated)
だから私はプロセスを繰り返します
- メモリ警告を受信しました。
- [RootViewController didReceiveMemoryWarning]
- [AController didReceiveMemoryWarning]
- [BController didReceiveMemoryWarning]
- [AController didReceiveMemoryWarning](<<<<重複)
- [BController didReceiveMemoryWarning](<<<<重複)
- [BController didReceiveMemoryWarning]:[allControllers lastObject]
- (popToRootViewControllerAnimated)
数回試行した後、メモリ不足のためにアプリがクラッシュします
スタック内のView Controllerを単純に削除できますか? メモリを解放しますか?