删除视图并添加另一个视图

Posted

技术标签:

【中文标题】删除视图并添加另一个视图【英文标题】:remove view and add another view 【发布时间】:2013-11-07 18:11:41 【问题描述】:

我的 ViewController 中有两个视图,我控制视图有我用按钮显示。当用户点击button1时,它隐藏viewA并显示viewB,当用户点击button2时,它隐藏viewB并显示viewA。但是在我使用 removeFromSuperView 删除 viewA 后,当我再次单击添加时,它不会显示。

发生了什么?

- (IBAction)btnViewB:(id)sender 
     NSLog(@"remove viewA");
     [viewA removeFromSuperview];
     [self.view addSubview:viewB];

- (IBAction)btnViewA:(id)sender 
     NSLog(@"remove viewB");
     [viewB removeFromSuperview];
     [self.view addSubview:viewA];

我解决了这个问题,但我想知道为什么如果我使用 removeFromSuperView 它不起作用

- (IBAction)btnViewB:(id)sender 
    viewA.hidden = YES;
    viewB.hidden = NO;

- (IBAction)btnViewA:(id)sender 
    viewA.hidden = NO;
    viewB.hidden = YES;

【问题讨论】:

【参考方案1】:

你有指向这些视图的类指针吗?我可能认为它们没有被保存下来。

【讨论】:

我正在使用 IB 并为此视图创建了一个 Outlet!我需要使用框架再次创建视图吗? 不,他的意思是你可能不会释放视图本身,因为视图仍然有指向它的指针。

以上是关于删除视图并添加另一个视图的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView didSelectItemAt() 并根据状态添加/删除视图

从另一个方法将子视图添加到子视图

为啥我不能从另一个控制器中删除视图?

如何删除视图和更新约束?

从另一个视图中删除现有数据

Swift 无法添加另一个环境视图