android n自定义导航栏,自定义NavigationController导航栏

自定义NavigationController导航栏

eg.

CZNavController.h

#import

@interface CZNavController : UINavigationController

@end

CZNavController.m

#import "CZNavController.h"

#import "UIImage+Ex.h"

@interface CZNavController ()

@end

@implementation CZNavController

//此方法,会在CZNavController当前类,执行第一个方法之前先会执行一次,并且只会调用一次

+ (void)initialize{

//设置导航条的样式

UINavigationBar *navBar = [UINavigationBar appearance];

//UIBarMetricsDefault 背景图片 在横竖屏都显示

[navBar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault];

//设置标题的颜色

[navBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];

}

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

}

//重写导航控制器的push方法,每一个子控制器在跳转的时候都会调用此方法

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{

//viewController 就是子控制器,设置子控制器的自定义后退按钮

//1 自定义后退按钮

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"NavBack"] originalImage] style:UIBarButtonItemStylePlain target:self action:@selector(backClick)];

//

UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];

fixedItem.width = -10;

viewController.navigationItem.leftBarButtonItems = @[fixedItem,backItem];

//自定义后退按钮后,手势返回上一级控制器的功能恢复

self.interactivePopGestureRecognizer.delegate = nil;

//当push的时候隐藏tabBar

viewController.hidesBottomBarWhenPushed = YES;

//真正的做了控制器之间的跳转

[super pushViewController:viewController animated:animated];

}

- (void)backClick{

[self popViewControllerAnimated:YES];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值