我正在研究基于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;