2014-09-26 108 views
0

我有一个加载两个视图控制器的根视图。例如:FirstVCSecondVCDealloc发布后不立即调用

我在显示FirstVC作为应用程序启动时的根视​​图控制器,在FirstVC上的某些操作中,我通过首先删除来加载SecondVC

对于装载SecondVC我第一次通过

[FirstVCobj.view removeFromSuperView]; 
[FirstVCobj release]; 
FirstVCobj = nil; 

删除FirstVC后,我分配和创建SecondVC

现在只有打完电话后SecondVCviewdidload()FirstVCdealloc()方法调用。 这是正确的执行路径,还是由于我犯的一些错误? 以上是我如何删除并创建我的视图控制器。

+1

什么类型是FirstVCo bj – 2014-09-26 11:47:58

+0

它只是一个ViewController来处理一些图像和按钮的视图。 – 2014-09-26 11:52:22

+0

FirstVCobj是一个VC?那么该代码将无法工作;) – 2014-09-26 11:54:00

回答

1

我认为这是你正在谈论的UIView。


  • addSubview保留看法
  • removeFromSuperView释放或自动释放它 - 一个实现细节你不控制

'看到' 它:在把它包您自己的泳池

@autoreleasepool { 
    [FirstVCobj.view removeFromSuperView]; 
    [FirstVCobj release]; 
    FirstVCobj = nil; 
} 
+0

是的,我编辑了我的问题。 – 2014-09-26 11:48:07

+0

是的,你做的发布,但有一个保留/ autorelease当你添加/删除视图 – 2014-09-26 11:51:31

+0

和dealloc只发生在所有版本/ autoreleases完成 – 2014-09-26 11:52:51

0
[FirstVCobj removeFromParentAndCleanup:YES]; 

检查这可能工作。

+0

这里假设一个cocos2d对象是正确的? – 2014-09-26 11:47:35

+0

是的,但那种类型的VC在之前的Q中没有提到 – satishiOS25 2014-09-26 11:51:19

+0

是的,这就是为什么我没有投票或什么 - 我只是问:) – 2014-09-26 11:52:05