iOS开发 封装导航栏

  多数情况下,开发项目期间需要用到导航栏,在项目开发搭建架构时便可通过重写

NavigationController的父类方法

对导航栏提前封装好,比如按钮,文字颜色,背景图片和颜色


+ (void)initialize
{
    UINavigationBar *navgationBar = [UINavigationBarappearance];
    [navgationBar setShadowImage:[UIImagenew]];//设置阴影图片
    navgationBar.tintColor = [UIColorwhiteColor];//设置导航条颜色
    CGFloat width = [UIScreenmainScreen].applicationFrame.size.width;
    [navgationBar setBackgroundImage:[UIImageimageFromColor:[UIColornavigationTintColor]size:CGSizeMake(width,64)]forBarMetrics:UIBarMetricsDefault];//设置背景图片和颜色
    [navgationBar setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColorbarButtonItemTintColor]}];//设置文字颜色
}

- (void)viewDidLoad
{
    [superviewDidLoad];
    self.delegate =self;//设置自身的代理方法
    self.interactivePopGestureRecognizer.delegate = self;
}



- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated//重写push的代理方法
{
    if ([self.viewControllerscount] > 0) {
        viewController.hidesBottomBarWhenPushed =YES;
    }
    [superpushViewController:viewControlleranimated:animated];
    if ([self.viewControllerscount] > 1 && !viewController.navigationItem.leftBarButtonItem) {//判断是否会根视图
        UIButton *backButton = [UIButtonbuttonWithType:UIButtonTypeCustom];
        [backButton setImage:[UIImageimageNamed:@"nav_back"]forState:UIControlStateNormal];//设置返回按钮图片
        backButton.bounds =CGRectMake(0,0,12,22);
        [backButton addTarget:selfaction:@selector(backToPageAction)forControlEvents:UIControlEventTouchUpInside];
        viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItemalloc]initWithCustomView:backButton];
    }
}

- (void)backToPageAction//设置返回按钮
{
    [selfpopViewControllerAnimated:YES];
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值