导航栏闪问题神坑

这个重要是接上一篇文章:

我的问题如下:


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的咋办? 好吧,我也不知道,没找到对应的解决办法;🤣🤣🤣

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容