今日私はいくつかのテストを行いましたが、私は結果が不思議です。私はUINavigationControllerと2つのUIViewControllerを持つアプリケーション(ARC)を作った。最初のビューにはボタンがあり、ボタンを押すと2番目のビューがロードされます。第2のビューでは、シェイクジェスチャが検出されたときに第1のビューがロードされ、以下同様である。私が計測器で気づくのは、ビューがロードされるたびにヒープが大きくなることです。ここではそれがなぜ起こるかヒープメモリが増えています
self.navigationController = [[UINavigationController alloc]init];
self.window setRootViewController:self.navigationController];
FirstViewController *firstview = [FirstViewController alloc]init];
[self.navigationController pushViewController:FirstViewController animated:YES];
FirstViewController.m
-(IBAction)loadSecondView
{
SecondViewController *secondview = [SecondViewController alloc]init];
[self.navigationController pushViewController:secondview animated:YES];
}
SecondViewController.mが
-(IBAction)loadFirstView
{
FirstViewController *firstview = [FirstViewController alloc]init];
[self.navigationController pushViewController:first view animated:YES];
}
私が把握することはできませんいくつかのコード
AppDelegate.mです。どのようにその場合に成長のヒープを避けるために?第二のコントローラは、最初に開いた場合
2番目のviewControllerには、それをタップすると自動的に動作する戻るボタンがありますので、FirstFirstViewの新しいインスタンスを作成するたびにloadFirstViewメソッドを実装する必要はありません。そのため、毎回メモリヒープが増えています。 –
私はそのボタンを望んでいません。シェイクジェスチャーが検出されたら、私は仕事をしたいです。 – objlv
on shake:[self.navigationController popViewControllerAnimated:YES]; – NeverBe