我有一个加载两个 View Controller 的 Root View 。例如:FirstVC
、SecondVC
。
当应用程序启动时,我将 FirstVC
显示为 Root View Controller ,在 FirstVC
上执行某些操作时,我通过删除第一个来加载 SecondVC
。
为了加载SecondVC
,我首先删除FirstVC
[FirstVCobj.view removeFromSuperView];
[FirstVCobj release];
FirstVCobj = nil;
之后我分配并创建SecondVC
现在只有在调用SecondVC
的viewdidload()
之后才会调用FirstVC
的dealloc()
方法.
这是正确的执行路径,还是因为我犯了一些错误?
以上正是我删除和创建 View Controller 的方式。
最佳答案
我假设你说的是 UIView。
- addSubview 保留 View
- removeFromSuperView 释放或自动释放它——一个您无法控制的实现细节
“查看”它:将它包装在您自己的池中
@autoreleasepool {
[FirstVCobj.view removeFromSuperView];
[FirstVCobj release];
FirstVCobj = nil;
}
关于ios - Dealloc 释放后不会立即调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26058459/