从视图控制器中删除一些视图

Posted

技术标签:

【中文标题】从视图控制器中删除一些视图【英文标题】:removing some view from a view controller 【发布时间】:2009-03-01 19:09:43 【问题描述】:

我想从我的根视图控制器中删除当前的子视图(添加 atIndex:0)并在其位置插入一个新视图。

目前我只能找到代码 sn-ps 显示使用 removeFromSuperView 卸载视图,这需要您知道当前加载的 viewcontrollers 视图。

唯一需要注意的是,我在 rootcontrollers 视图中插入了另一个子视图,我不想卸载它。所以删除所有子视图的代码是不够的

谢谢,

if(self.firstscr == nil)
    
        firstscreen *f = [[firstscreen alloc] initWithNibName:@"firstscreenview" bundle:nil];
        self.firstscr = f;
        [f release];
    

    ///This is my attempt at getting to the currently loaded view :P
  [[self.view subviews atIndex:0].view removeFromSuperView];


    [self.view insertSubview:firstscr.view atIndex:0];

【问题讨论】:

【参考方案1】:

这是怎么做的(我想通了,是的!)

if(self.firstscr == nil)
    
        firstscreen *f = [[firstscreen alloc] initWithNibName:@"firstscreenview" bundle:nil];
        self.firstscr = f;
        [f release];
    

    //Remove whatever view is currently loaded at index 0, this index is only to be used by "page" views
    UIView *v = [self.view.subviews objectAtIndex:0];
    [v removeFromSuperview];


    [self.view insertSubview:firstscr.view atIndex:0];

【讨论】:

以上是关于从视图控制器中删除一些视图的主要内容,如果未能解决你的问题,请参考以下文章

为啥在模态视图控制器被解除后 CAGradientLayer 从视图中删除

如何从导航控制器中删除视图

从导航堆栈中删除视图控制器

如何以编程方式从标签栏控制器卸载视图控制器?

无法从另一个视图控制器获取表视图数据

从内存中删除视图控制器?