在UIView上更改子视图? [关]

时间:2011-05-23 23:53:55

标签: iphone uiview nib


我有来自另一个NIB的成功显示子视图,我在MainView上有2个按钮和1个UIView,当我按下按钮1将在UIView上显示NIB1,然后我按下按钮2将在UIView上显示NIB2,但是当我再次按下时按钮1 UIView不再显示NIB1,但仍然是NIB 2,这是我的代码:

已更新已解决
在.h文件

IBOutlet UIView *bottomView;

在.m文件

-(IBAction) handleButton1{
    for (UIView *t in bottomView.subviews) {
        [t removeFromSuperview];
    }
    if (![nib1 isViewLoaded]) {
        nib1 = [[NIB1 alloc] initWithNibName:@"NIB1" bundle:nil];
    }
    [bottomView addSubview:nib1.view]; 
}

-(IBAction) handleButton2{
    for (UIView *t in bottomView.subviews) {
        [t removeFromSuperview];
    }
    if (![nib2 isViewLoaded]) {
        nib2 = [[NIB2 alloc] initWithNibName:@"NIB2" bundle:nil];     
    }
    [bottomView addSubview:nib2.view]; 


}

如何在代码中使用另一个NIB刷新UIView? 谢谢,

我已经解决了这个问题,我从这个http://stackoverflow.com/questions/3915729/refreshing-cell-content-after-deleting-cells中删除了MainView上的所有子视图 使用:

for (UIView *t in bottomView.subviews) {
        [t removeFromSuperview];
    }


我希望这段代码可以帮助任何人:)。

1 个答案:

答案 0 :(得分:2)

您必须删除第一个视图[theViewYouDontWantToShow removeFromSuperview]

或者您可以使用[bottomView bringSubviewToFront:nib1/2.view]

这里附加的只是你添加了一个视图(这个有效),在第一个视图之上添加了另一个视图(这也有效),但是你又添加了第一个视图。视图不会改变,因为它已经存在。