什么时候在ARC中删除UIViewController

时间:2012-10-24 05:30:57

标签: objective-c xcode ios4 automatic-ref-counting dealloc

我正在研究基于ARC的项目。我有两个ViewControllers。在第一个ViewController中我有一个按钮,在按下该按钮时我正在推动新的ViewController。

我这样做:

SecondViewController *second=[[SecondViewController alloc]initWithStrVal:self.strVal];
[self.navigationController pushViewController:second animated:YES];

我的问题是当我按下SecondViewController,然后在FirstView Controller中创建SecondViewController的对象时,FirstViewController中的dealloc方法被调用。

如果我只执行推送并且不在FirstViewController中创建SecondViewController的实例,则不会调用dealloc方法。据我推动视图控制器时所听到的那样,在正常情况下不应调用dealloc,因为在基于ARC的项目的正常场景中,之前的ViewController不会被删除

修改

第一个ViewController在app delegate中设置如下:

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
self.navController=[[UINavigationController alloc]initWithRootViewController:viewController]; 
self.window.rootViewController = self.navController; 

0 个答案:

没有答案