我有两个视图,viewA和viewB。我使用
在viewA的顶部加载viewB[self.view addSubview: viewB.view];
我不想删除viewB,但我不知道怎么做。我试过了
[self.view removeFromSuperview];
但这不起作用。我怎么能这样做?
答案 0 :(得分:20)
在-removeFromSuperview
上致电viewB.view
。
答案 1 :(得分:7)
要从超级视图中删除viewB的视图,您需要在该视图上调用removeFromSuperview。
[viewB.view removeFromSuperview];
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);