2013-12-20 152 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]; 

這是正確的方法。

相關問題