2013-12-20 154 views
0

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

这是怎么了添加子视图:

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

当我删除使用子视图:

[self.view removeFromSuperview]; 

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

+0

向我们展示一些代码,我们将看到我们可以做些什么来提供帮助。 – neilco

+0

什么样的属性是childView? – KIDdAe

+0

子视图是UIViewController – brainforked

回答

0

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

[resolutionPopUp.view removeFromSuperview]; 

这将从self.view删除resolutionPopUp.view

+0

它不工作。子视图现在不会被删除。 – brainforked

+0

你在哪里试图删除视图:在父视图控制器或子视图控制器中? – neilco

+0

在子视图控制器中 – brainforked

0

self.view是你的parentViewController.and你正在删除,所以这是你得到空值的主要原因。用户

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

这是正确的方法。

相关问题