据我了解,当推送新的pushViewController
时,应该释放旧的viewController
吗?
在这里,我只是创建了两个不同的viewControllers
并将其推送。
UINavigationController *navController = [[UINavigationController alloc] init];
[self.window addSubview:navController.view];
smallLayout = [[SmallViewController alloc] init];
[navController pushViewController:smallLayout animated: NO];
[smallLayout release];
largeLayout = [[LargeViewController alloc] init];
[navController pushViewController:largeLayout animated: NO];
[largeLayout release];
在
SmallViewController
中,永远不会调用dealloc,并且当我检查保留计数时它仍然为1。我正在检查循环运行很久之后的保留计数,而且我也知道保留计数不是您应该信任的东西。 最佳答案
不,不应该...
导航控制器会维护所有推到其上的视图控制器的导航堆栈...因此,当您返回或弹出当前视图控制器时,前一个控制器仍然存在。
弹出后,导航控制器将释放视图控制器。
关于iphone - pushViewController是否应在推送新的时释放oldController?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5815509/