iOS删除视图

时间:2011-12-18 17:23:45

标签: objective-c ios view

我有两个视图,viewA和viewB。我使用

在viewA的顶部加载viewB
[self.view addSubview: viewB.view];

我不想删除viewB,但我不知道怎么做。我试过了

[self.view removeFromSuperview];

但这不起作用。我怎么能这样做?

3 个答案:

答案 0 :(得分:20)

-removeFromSuperview上致电viewB.view

答案 1 :(得分:7)

要从超级视图中删除viewB的视图,您需要在该视图上调用removeFromSuperview。

[viewB.view removeFromSuperview];

来自UIView class reference

removeFromSuperview
  

取消接收器与其超视图及其窗口的链接,并将其删除   来自响应者链。

答案 2 :(得分:3)

使用removeFromSuperView,您走在正确的轨道上。但是您需要将消息发送到要删除的视图。就像直到例子一样

[viewB.view removeFromSuperview];

但是,如果不使用property和synthesize方法,则在删除它时可能没有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);