最近、UINavigationController を使用するようにアプリを変更しました。以前は UINavigationBar を使用していましたが、カスケード subView を追加していましたが、これは少し面倒でした。
メモリ使用量の問題に直面しています。Leaks ツールにはリークは表示されませんが、私が作成して UINavigationController に追加した ViewControllers は決してリリースされないようです。そのため、新しい VC を作成して NavigationController の戻るボタンを押すたびに、メモリ使用量が増加します。
この方法で VC を作成して追加するだけです。
DetailViewController* detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
// setups
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
アプリは ViewControllerdealloc
とviewDidUnload
メソッドを通過しません。戻るボタンを押すたびにこれらを呼び出すべきではありませんか?
多くのチュートリアルを検索し、Apple のメモリ管理を読みましたが、NavigationController を使用する場合のメモリ内での VC の寿命については何もありません。