1.默认(或者设置)的半透明属性(同时滑动视图是第一个添加到控制器view上时) 会导致坐标偏移64
self.navigationController.navigationBar.translucent=
NO;
设置禁止偏移 这个要写在viewController里面才能有效果 跟设置透明的属性一起
self.automaticallyAdjustsScrollViewInsets = NO;
2.配置导航栏的背景颜色和图片
(1)设置背景颜色
self.navigationController.navigationBar.barTintColor=
[UIColorredColor];
(2)设置背景图片
[self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"nav_bg_all-64"]forBarMetrics:UIBarMetricsDefault];
3.创建系统自带的Item
UIBarButtonItem*leftItem = [UIBarButtonItem
alloc] initWithBarButtonSystemItem:<#(UIBarButtonSystemItem)#> target:<#(nullable id)#> action:<#(nullable SEL)#>
4.创建自定义Item
UIBarButtonItem*leftItem = [UIBarButtonItem
alloc] initWithCustomView:<#(nonnull UIView *)#>
5.设置滑动的手势 NavigationController堆栈内的UIViewController可以支持右滑手势
self.navigationController.interactivePopGestureRecognizer.delegate=
self;
6.设置导航栏提示
self.navigationItem.prompt=
@"我在努力加载啦。。。。";
7.在导航栏上添加子视图 特别注意:navigation 要这样才能赋值
[self.navigationController.navigationBaraddSubview:textField];//是唯一的
self.navigationItem.titleView=
textField;//Item是属于当前控制器的
8.在导航栏上设置标题视图 以及直接设置标题
self.navigationItem.titleView=
title;
self.navigationItem.title
= [NSString
stringWithFormat:@"第个%ld视图",self.navigationController.viewControllers.count];
9.通过设置导航栏的样式 改变导航栏和电池条的颜色
//通过设置导航栏的样式改变导航栏的字体颜色,间接改变电池条颜色
self.navigationBar.barStyle=
UIBarStyleBlack;
10.通过字典配置导航栏上文字的属性
//通过设置导航栏上文字的属性设置颜色
self.navigationBar.titleTextAttributes=
@{NSForegroundColorAttributeName:[UIColorwhiteColor]};
11.可以根据子视图的不同设置不同状态的电池条 通过取出栈顶的视图控制器
#pragma mark -设置电池条(视图控制器里也要写一次)
- (UIStatusBarStyle)preferredStatusBarStyle {
- (UIStatusBarStyle)preferredStatusBarStyle {
return
[self.topViewControllerpreferredStatusBarStyle];
}
12.导航栏控制器的控制方式