UITabBar自定义tabbar如何隐藏和显示,超实用

在开发新闻客户端时,遇到自定义UITabBarController在跳转至子页面时隐藏的问题。通过检查发现不能直接使用`hidden = YES`方法,因为这仅适用于系统TabBar。解决方案是获取应用的关键窗口的根视图控制器,即自定义的TabBar,并通过它来改变自定义TabBar的背景视图的隐藏状态,从而实现自定义TabBar的隐藏和显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天在做新闻客户端,遇到一个问题:如何将作为根视图控制器的自定义UITabBarController在主页转到子页时隐藏

self.tabbarcontroller.tabbar.hidden = YES;

这种方法只适用于系统的tabbar

我打印出了自定义tabbarcontrollerself.tabbarcontroller地址发现不一样

认识到这种误区,我就想办法找到我自定义的tabbarcontroller

我突然想到试图控制器的根控制器就是我自定义的tabbarcontroller(下称Customtabbar

不通过代理找根视图

通过以下方法即可实现对自定义tabbarcontroller的隐藏和显示

UIWindow * window = [UIApplication sharedApplication].keyWindow;

CustomTabBar * ct =(CustomTabBar *) window.rootViewController;

ct.bgView.hidden = YES;


CustomTabbarController.h

#import <UIKit/UIKit.h>
#define kWith [UIScreen mainScreen].bounds.size.width
#define kHeight [UIScreen mainScreen].bounds.size.height
@interface CustomTabbarController : UITabBarController

@property (nonatomic,strong) UIView * bgView;

@end


CustomTabbarController.m

#import "CustomTabbarController.h"

@implementation CustomTabbarController
-(instancetype)init{
    self = [super init];
    if (self) {
        
        [self.tabBar removeFromSuperview];// 移除系统自带tabbar
//        self.tabBar.hidden = YES;//隐藏系统自带tabbar  两种方法都能实现让系统自带tabbar消失的效果
        self.bgView = [[UIView alloc]initWithFrame:CGRectMake(0, kHeight-49, kWith, 49)];
        self.bgView.backgroundColor = [UIColor colorWithRed:0.96 green:0.96 blue:0.96 alpha:1];
        [self.view addSubview:self.bgView];
    }
    return self;
}
@end





UITabBar自定义tabbar如何隐藏和显示,超实用UITabBar自定义tabbar如何隐藏和显示,超实用UITabBar自定义tabbar如何隐藏和显示,超实用UITabBar自定义tabbar如何隐藏和显示,超实用UITabBar自定义tabbar如何隐藏和显示,超实用UITabBar自定义tabbar如何隐藏和显示,超实用UITabBar自定义tabbar如何隐藏和显示,超实用UITabBar自定义tabbar如何隐藏和显示,超实用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值