我有来自另一个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];
}
我希望这段代码可以帮助任何人:)。
答案 0 :(得分:2)
您必须删除第一个视图[theViewYouDontWantToShow removeFromSuperview]
。
或者您可以使用[bottomView bringSubviewToFront:nib1/2.view]
。
这里附加的只是你添加了一个视图(这个有效),在第一个视图之上添加了另一个视图(这也有效),但是你又添加了第一个视图。视图不会改变,因为它已经存在。