添加子视图会释放父视图控制器的属性

时间:2013-12-20 11:09:43

标签: ios iphone ipad

我在主视图控制器(parentView)上添加了一个子视图(childView),用于从菜单中选择一些选项。但是当我从视图中删除它时,父视图的属性返回null。任何人都可以解释这种行为。我也在使用ARC。

这就是我添加子视图的方式:

resolutionPopUp=[ResolutionPopUp alloc];
resolutionPopUp.resPopStr = combinedUrl;
[self.view addSubview:resolutionPopUp.view];

当我使用:

删除子视图时
[self.view removeFromSuperview];

现有视图控制器的所有属性都返回null。

2 个答案:

答案 0 :(得分:0)

[self.view removeFromSuperview]从其父级(将是UIWindow)中删除父视图,并导致self.view被收集。删除子视图resolutionPopUp.view的正确方法是:

[resolutionPopUp.view removeFromSuperview];

这将从resolutionPopUp.view中移除self.view

答案 1 :(得分:0)

self.view是你的parentViewController。你正在删除它,所以这是你获得null Value的主要原因。 而不是那个,用户

     resolutionPopUp=[ResolutionPopUp alloc];
      resolutionPopUp.resPopStr = combinedUrl;
       [self.view addSubview:resolutionPopUp.view];
      [resolutionPopUp.view removeFromSuperView];

这是正确的方法。