这个重要是接上一篇文章:
我的问题如下:

1界面

push到下一个界面
简单说就是,首页导航栏隐藏,进入到下一个界面,显示导航栏,同时要把底部的tabbar隐藏,好简单的需求.
我的做法如下(部分代码):
#import "ViewController.h"
#import "NextVC.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:NO];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(100, 300, 100, 30)];
btn.backgroundColor = [UIColor orangeColor];
[btn addTarget:self action:@selector(goNextVC) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
UIImageView *headbackImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 375, 150)];
headbackImgView.clipsToBounds = YES;
headbackImgView.image = [UIImage imageNamed:@"infoBackground"];
headbackImgView.contentMode = UIViewContentModeScaleAspectFill;
[self.view addSubview:headbackImgView];
}
-(void)goNextVC{
NextVC *nextVC = [[NextVC alloc] init];
/*
坑点: hidesBottomBarWhenPushed 会导致导航栏闪一下;
*/
nextVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:nextVC animated:YES];
}
看到这个代码,感觉好像没啥问题啊;然而,hidesBottomBarWhenPushed有坑,会导致下一级界面的导航栏闪一下.
之前没发现是这个hidesBottomBarWhenPushed属性设置导致的,所以解决办法也不相同;
解决办法
我唯一验证通过的办法是,通过XIB去设置,如下:

image.png
把这个勾上,就不需要代码设置了,bug也完美解决;
遗留问题:
如果没有用xib的咋办? 好吧,我也不知道,没找到对应的解决办法;🤣🤣🤣