UINavigationController详解(二)UINavigationBar(UIBarButtonItem)
最后更新于:2022-04-01 06:59:01
@UINavigationBar-----(是一个View)基本介绍
1.导航栏,和导航控制器一样,是一个容器用来显示提供的其他对象的内容
2.导航栏显示的内容,通过设置UINavigationItem展示,每个controller都有专属的navigationItem
3.导航栏的高度:
iPhone : 竖屏 44 横屏 32
iPad: 44
4.配置外观:背景图片,背景颜色,style等等
代码样例:
~~~
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor orangeColor];
self.navigationController.navigationBar.tintColor = [UIColor redColor];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavBar_64"] forBarMetrics:UIBarMetricsDefault];
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-12_5694d75302b81.jpg)
@UINavigationItem------是一个NSObject(主要按钮UIBarButtonItem)
1.提供navigationBar的显示内容.导航栏是唯一的,每个controller都要设置
2.常用属性:leftBarButtonItem(leftBarButtonItems 组合,用数组存),rightBarButtonItem,backBarButtonItem,title,titleView
3.UIBarButtonItem,navigationBar上显示的按钮,navigationItem上需要设置的,可以使用系统提供的
4.backBarButtonItem是上一级navigationItem控制的
5.*@property**(**nonatomic**,**copy**) **NSString** *prompt; **// Explanatory text to display above the navigation bar buttons.*
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-12_5694d7531d166.jpg)
@这里重点介绍下@
UIBarButtonItem 是一个 UIBarItem,是一种专门放在bar上的特殊button,UIBarItem是一个NSObject
// 系统自带的符号
1.UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(selectLeftAction:)];
UIBarButtonSystemItemAction的风格,这是系统自带的按钮风格,看下图,你不用一个个试验,你也知道想用那个item,如下图:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-12_5694d753325f5.png)
// 自定义文字---backBarButtonItem 右边"Back"按钮
2. self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:nil action:nil];
// 设置所有UINavigationBar上文本的属性
NSDictionary *attributes =@{NSFontAttributeName: [UIFont fontWithName:@"Futura"size:18],
NSForegroundColorAttributeName: [UIColor redColor]};
[[UINavigationBar appearance]setTitleTextAttributes:attributes];