我正在向导航栏添加视图
UIView *mySubView = [UIView alloc] initwithFrame:frame];
[self.navigationController.navigationBar addSubview:mySubView];
我想在推送到secondviewController之前删除视图。
[mySubView removeFromSuperView];
当App第一次启动时,它没有删除视图,因此在第二个视图导航栏上也可以看到视图
我搜索并尝试了很多方法,但没有找到任何解决方案。
答案 0 :(得分:4)
为你的mysubview分配一个标签,如
UIView *mySubView = [UIView alloc] initwithFrame:frame];
mySubView.tag =1;
[self.navigationController.navigationBar addSubview:mySubView];
然后在推送到secondViewController时添加此行。
[[self.navigationController.navigationBar viewWithTag:1] removeFromSuperview];
希望它对你有所帮助。
答案 1 :(得分:2)
在要删除的视图的标记属性中添加一个值,并在删除子视图之前检查它,例如,假设您为子视图添加了非零值:
for (UIView *view in self.navigationController.navigationBar.subviews) {
if (view.tag != 0) {
[view removeFromSuperview];
}
}
试试这会有所帮助!!!!
答案 2 :(得分:0)
对ViewController
NavigationBar
执行以下操作
.h
中的
@property (nonatomic, retain) UIView *mySubView;
.m
中的
- (void)viewDidLoad {
//Your Existing Code + following 2 lines
self.mySubView = [[UIView alloc] initWithFrame:yourFrame];
self.mySubView.backgroundColor = [UIColor whiteColor];
}
- (void)viewWillAppear:(BOOL)animated {
//Your Existing Code + following 1 line
[self.navigationController.navigationBar addSubview:self.mySubView];
}
- (void)viewWillDisappear:(BOOL)animated {
//Your Existing Code + following 1 line
[self.mySubView removeFromSuperview];
}
你很高兴。经过试验和测试。
答案 3 :(得分:0)
-(void)viewWillDisappear:(BOOL)animated
{
[self.mySubView removeFromSuperview];
//[_mySubView removeFromSuperview];
}