iOS跳转界面时隐藏tabBar底部变黑

1 篇文章 0 订阅
1 篇文章 0 订阅

iOS跳转界面时隐藏tabBar底部变黑

tabbar 、底部黑 、跳转后view不完全

通过按钮或者连线进行push跳转时,代码里写了隐藏底部的tabbar,但是到新的controller里时,底部是一团黑色的,如图
在这里插入图片描述

问题描述:

项目首页用到了tabbar,当从外面的导航栏跳进去的时候,是通过按钮或者连线push的,但是跳转进去之后会发现底部有一块黑色,观察发现这个controller的view就是没有底部这一块的


代码中已经写了
override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.tabBarController?.tabBar.isHidden = false
        self.navigationController?.navigationBar.isHidden = true
        self.navigationController?.interactivePopGestureRecognizer?.delegate = self
        UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .any, barMetrics: .default)
        UINavigationBar.appearance().shadowImage = UIImage()
    }

原因分析:

用代码隐藏后需要重设里面controller中view的尺寸,而不能直接用代码,并不会生效,百度之后有两种隐藏方法:

第一种:设置当前所处界面的隐藏属性
self.tabBarController.tabBar.hidden = YES;
第二种:设置在push的时候隐藏底部视图
UIViewController * VC=[[UIViewController alloc]init];
nextVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:VC animated:YES];
注意:隐藏tabBar之后,底部tabBar位置那块变黑了


解决方案:

第一种情况:可以看下视图的层级结构,肯定是最外层的View的高度不对

 - (void)viewWillLayoutSubviews {
    [super viewWillLayoutSubviews];
    self.view.frame = //所需高度
}

第二种情况:增加以下代码

self.tabBarController.tabBar.hidden = YES 

而我这两种试了都没用,结果在快放弃的时候发现在主controller的属性里设置hide bottom bar when push,就大功告成了,如图:
在这里插入图片描述
完成后效果如图:
在这里插入图片描述

个人分析:代码写的hide是在加载子controller的view的基础上hide,导致整个view是小于整个屏幕的,即下面一块会留黑

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值