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];
';