iOS开发 ☞ UINavigationController详解

原文链接:http://blog.csdn.net/magicZYJ/article/details/51104360

相关链接:http://blog.csdn.net/magiczyj/article/details/50680242

一、属于
1、navigationItem
navigationItem是UIViewController的属性,用于控制器定制自己的导航栏外观
UINavigationItem的属性如下:
leftBarButtonItem 导航栏左边按钮
leftBarButtonItems 导航栏左边按钮数组
rightBarButtonItem 导航栏右边按钮
rightBarButtonItems 导航栏右边按钮数组
backBarButtonItem 返回按钮 ,从第一个控制器push到第二个控制器,如果前一个控制器设置了self.title 那么第二个控制器的backBarButtonItem会显示前一个控制器的title 否则默认显示Back
title 导航栏title文字,也可以通过给控制器的title赋值实现同样的效果
titleView 传入一个自定义的view作为title
prompt 给这个属性赋值字符串,并且显示在title上面,同时如果设置了这个属性,NavigationBar的高度会增加30(不论横屏还是竖屏)
leftItemsSupplementBackButton 布尔类型,默认为NO。当由前一个控制器Push到下一个控制器时,如果这个控制器设置了leftBarbuttonItem,返回按钮将会隐藏,如果想同时显示,需要设个这个属性为YES。
hidesBackButton

2、navigationBar
UINavigationBar是UINavigationController的属性
UINavigationBar的属性如下:
(1) tintColor :
释义如下:tintColor在iOS7以后不再影响背景颜色,改变背景颜色使用barTintColor属性。

 The behavior of tintColor for bars has changed on iOS 7.0. It no longer affects the bar's background
 and behaves as described for the tintColor property added to UIView.
 To tint the bar's background, please use -barTintColor.

用法示例:

self.navigationController.navigationBar.tintColor = [UIColor orangeColor];

这里写图片描述

(2) barTintColor:
用法示例:

self.navigationController.navigationBar.barTintColor = [UIColor greenColor];

这里写图片描述

(3) translucent 毛玻璃 || 半透明效果

self.navigationController.navigationBar.translucent = NO;

这里写图片描述

(4) titleTextAttributes 设置导航栏title的一些文字属性

self.title = @"4444";
    self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor orangeColor]};

这里写图片描述

(5) backgroundColor
设置其背景色并不会达到想要的效果。原因如下:
这里写图片描述
挡在UINavigationBar前面的是一个imageView,而且默认事带有毛玻璃效果的,此外,NavigationBar的高度为44。

UINavigationBar常用方法:
(1)setBackgroundImage:forBarMetrics:

//必须选择Default样式
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"6"] forBarMetrics:UIBarMetricsDefault];

这里写图片描述

二、原则

L:
如果当前的Controller(不是RootController)设置了leftBarButtonItem,则显示自带的leftbarButtonItem,隐藏上一个Controller的backbarButtonItem。

如果当前的Controller(不是RootController)没有设置leftBarButtonItem,则显示上一层Controller的backBarButtonItem,如果上一层的Controller没有设置backBarButtonItem,系统会根据上一层NavigationBar显示的title自动生成一个back按钮,如果上一层没有设置title,则back按钮显示Back。

如果当前的Controller是RootController,且没有设置leftBarButtonItem,则什么都不显示

M:
如果当前的Controller通过titileView设置了自定义的View,系统会显示自定义的View(其余的title属性设置无效

如果当前Controller没有指定titleView会根据Controller的navigationItem的title属性或者Controller的title属性进行显示。

R:
当前Controller 制定了rightBarbuttonItem就显示,不指定就不显示

三、设置导航栏返回按钮
UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@”custom” style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = back;

更新日期:2016年12月21日

在navigationController中实现右滑返回功能,如果我们不设置自定义的leftbarItem,使用系统的back,那么默认是有右滑返回功能的,如果我们自定义了leftbarItem,还想实现右滑返回功能,需要实现以下代码:

1、 self.navigationController.interactivePopGestureRecognizer.enabled = YES(默认为YES)  
2、self.navigationController.interactivePopGestureRecognizer.delegate = self; 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值