我有兩個視圖viewA和viewB。我加載viewA頂視圖A與iOS刪除視圖
[self.view addSubview: viewB.view];
我不想刪除viewB,但我不怎麼做。我試過
[self.view removeFromSuperview];
但這不起作用。我怎樣才能做到這一點?
我有兩個視圖viewA和viewB。我加載viewA頂視圖A與iOS刪除視圖
[self.view addSubview: viewB.view];
我不想刪除viewB,但我不怎麼做。我試過
[self.view removeFromSuperview];
但這不起作用。我怎樣才能做到這一點?
致電-removeFromSuperview
對viewB.view
。
要從其超級視圖中移除viewB的視圖,您需要在該視圖上調用removeFromSuperview。
[viewB.view removeFromSuperview];
removeFromSuperview
從解除鏈接它的父和其窗口中的接收器,並刪除它 從響應鏈。
通過使用removeFromSuperView,您處於正確的軌道上。但是您需要將消息發送到您想要刪除的視圖。正如直到例如
[viewB.view removeFromSuperview];
但是,您可能沒有你想,如果你不使用屬性,刪除它,然後合成方法的時候有一個手柄viewB。我會使用@property和@synthesize。所以,你可以使用:
[self.viewB.view removeFromSuperview];
另一種方法是使用這樣的:(假設你的viewB.view是您添加到viewA.view
[[self.view.subviews objectAtIndex:(self.view.subviews.count - 1)]removeFromSuperview];
最後一個視圖您可以得到所有子視圖列表您viewA按:
NSLog(@"subviews of viewA.view: %@",self.view.subviews);
僅供參考,您可以調用'lastObject'來獲取數組的最後一個對象(而不是'self.view.subviews.count - 1)' – Rog 2011-12-18 19:11:58
我學會了。偉大的信息! – user523234 2011-12-19 00:58:02
我以編程的方式添加了很多東西,所以'removeFromSuperview'是我的選擇。 – McDermott 2011-12-19 07:19:08
試了一下,這個應用程序崩潰:' - [viewB performSelector:withObject:withObject:]:發送到釋放實例消息0xf568d40' – McDermott 2011-12-18 20:26:43
你可以發佈更多的代碼很難?知道什麼是g錯誤沒有更多的上下文。 – Sean 2011-12-18 21:12:53
我發現,這次墜機事件與此無關。它現在完美運行。 – McDermott 2011-12-19 07:16:45