今天我做了一些測試,我很好奇的結果。我做了一個應用程序(ARC),它有UINavigationController和兩個UIViewControllers。在第一個視圖中有一個按鈕,當按下該按鈕時,將加載第二個視圖。在第二個視圖中,當檢測到搖晃手勢時,加載第一個視圖,依此類推。我在文書中注意到,每次加載視圖時,堆都會增長。下面是一些代碼堆內存越來越大
AppDelegate.m
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];
}
我想不通,爲什麼出現這種情況。在這種情況下如何避免堆積如山?
在你的第二個的viewController有將已經後退按鈕,當你點擊就可以了,所以沒必要實施loadFirstView method.because每次你被creatng FirstViewController的新實例時自動工作,這就是爲什麼內存堆中成長每次。 – 2012-02-10 08:55:57
我不想那個按鈕。我想在檢測到搖晃手勢時工作。 – objlv 2012-02-10 08:58:43
搖:[self.navigationController popViewControllerAnimated:YES]; – NeverBe 2012-02-10 09:09:38