知识点:

1)UINavigationController

2)UINavigationBar

3)UINavigationItem

4)UIToolBar

======================================================

一、UINavigationController

1、UINavigationController介绍

1)UINavigationController是导航控制器,它通过栈的方式控制当前显示在屏幕上的是哪个控制器。

2)它可以通过压入(push)和弹出(pop)来改变控制器的层次。

3)自动提供返回(Back)按钮,以回到上一个压入的控制器,不需要额外编程

4)UINavigationController会提供控制器切换的动画效果

5)   UINavgationController通过栈的形式管理多个UIViewController(即多个界面)

6)可以管理当前在导航条(navigationBar)上的导航按钮

7)UINavgationController为每个接受它管理的UIViewController自动添加UINavigationBar

8)包括四部分: 1⃣️.UINavigationController

2⃣️.UIViewController

3⃣️.UINavigationBar

4⃣️.UINavigationItem

2、导航控制器的跳转

1)pushViewController: animated:  跳转,切换到下一个视图控制器(压栈)

2)popViewControllerAnimated:  返回上一层(出栈)

3)popToRootViewControllerAnimated:  返回root视图控制器(根视图控制器)

4)popToViewController:  animated:  返回到指定层

5)   setViewControllers:(NSArray<UIViewController *>)animated:同时为UINavgationController设置所有的UIViewController

=====================================================

二、UINavigationBar(受UINavigationController管理)

1、UINavigationBar位于屏幕顶端的控件,通常只是作为多个UINavigationBar的容器,同样是以栈的 形式来管理多个UINavigationItem控件

2、UINavigationBar常用方法和属性

1)backgroundColor  设置导航栏的背景色,毛玻璃边效果

2)barTintColor  设置纯色背景 3)barStyle  状态栏系统样式(很少使用,一般我们都会加上背景图片)

4)setBackgroundImage: forBarMetrics:

7.0之前,导航的高度为44

7.0之后,导航的高度为64

Metrics 指在什么状态下的图片(横32,竖64)

a)UIBarMetricsDefault 竖屏

(以下两个方法使用之前可以先判断当前的版本号再决定使用哪个)

通过该方法获取版本号:[[[UIDevice currentDevice] systemVersion] floatValue]

b)UIBarMetricsCompact 横屏 iOS8.0之后的方法

c)UIBarMetricsLandscapePhone iOS8.0之前的横屏方法

5)   hidden属性,YES为隐藏导航栏,NO为显示

=========================================================

三、UINavigationItem

1、UINavigationItem常用方法和属性

标题相关

1)title 设置导航标题

2)titleTextAttributes  设置导航栏标题的文字大小(key:NSFontAttributeName)和颜色(key:NSForegroundColorAttributeName)

3)titleView  设置标题的UIView(可以使用自定义的)

按钮相关(UIBarButtonItem)主要有右按钮rightBarButtonItem、左按钮leftBarButtonItem,还有多个按钮

rightBarButtonItems:(NSArray)、leftBarButtonItems:(NSArray)

4)initWithBarButtonSystemItem: target action:  系统自带的样式

5)initWithCustomView:  自定义item样式

6)initWithImage: style: target: action: 以图片方式设置item样式

7)initWithTitle: style: target: action: 以文字样式设置item

8)tintColor 渲染item颜色

9)弹簧效果

这是系统的样式,得指定弹开的宽度:UIBarButtonSystemItemFixedSpace

width  设置弹开的宽度

这是系统的样式,会自动弹开:UIBarButtonSystemItemFlexibleSpace

10)hidesBackButton 该属性设置是否显示左上角的back按钮,YES为隐藏

======================================================

四、UIToolBar

1、UIToolBar介绍

1)UIToolBar存在于UINavigationController控制器中

2)UIToolBar默认显示在UINavigationController的底部位置,且默认被隐藏

3)当我们需要在屏幕的底部加一些按钮时我们就可以使用UIToolBar来设置他,不需要自己去创建UIView

4)创建UIToolBar需要先创建一个UINavigationController控制器

2、UIToolBar的常用方法和属性

1)setBackgroundImage: forToolbarPosition: barmetrics:

设置toolBar的背景图片,UIToolBar的高度为44

2)setToolBarHidden:  animated:  设置toolBar的隐藏和显示

UINavigationController的更多相关文章

  1. iOS UINavigationController(内容根据iOS编程编写)

    我们知道 UITabBarController 对象,可以通过使用该对象,用户可以切换不同的屏幕.当要切换的各个屏幕之间没有相互依存关系的时候,该对象可以很好的完成任务.但是当多个屏幕互有关系的时候, ...

  2. 混合使用UITabBarController和UINavigationController

    混合使用这两个控件的好处是我们可以在NavigationBar添加更多的东西,如标题,按钮等.让用户能够获得更多的信息. UITabBarController的属性ViewControllers接受以 ...

  3. 基本组件的使用——UINavigationController

    作用:在多个ViewController中切换.UINavigationController内部以栈的形式维护一组ViewController, 因此,当导航进入一个新视图的时候,会以push的形式将 ...

  4. 解决UINavigationController在pushViewController时出现的"卡顿"问题

    进行开发中,遇到了个小问题: 在使用UINavigationController的-pushViewController:animated:执行入栈一个子控制器操作时(即最新栈顶子控制器),会出现推出 ...

  5. UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解

    (1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界 ...

  6. IOS 学习 开发 自定义 UINavigationController 导航

    文件目录如下:基本导航顺序: root -> First -> Second -> Third.其中,FirstViewController作为 navigation堆栈的rootv ...

  7. APP标配控制器:UINavigationController

    导航控制器UINavigationController简介: 只要看到控制器界面上部有一个条就是导航控制器UINavigationController 导航控制器最上面有一个条是导航条高度44,Y值是 ...

  8. UIScrollerView遇到UINavigationController

    今天在UITabBarController  的第一个Tab 页面中放入一个ScrollView, 原本以为可以正常运行. 结果却让人大跌眼镜.  每当我手动滚动或者 缓慢导航到另外一个页面时,当前的 ...

  9. IOS开发之控件篇UINavigationController第一章 - 介绍

    UINavigationController是一个比较常见的控件,它连接个视图,例如一个视图走到另外一个视图,之间的联系都可以用这个NavigationController的方法 一般都会由两个部分组 ...

随机推荐

  1. 关于Hadoop用户体系的设想(胡思乱想)

    关于Hadoop的用户体系设计设想 Hadoop并没有一个完整的用户体系,其权限控制的对象,主要是Linux的其它用户(即非安装Hadoop的用户),控制方式也和Linux的文件权限很像,目前权限控制 ...

  2. JS案例之2——cycle元素轮播

    元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: <!DOCTYPE html> <html&g ...

  3. HTML5 & CSS3初学者指南(2) – 样式化第一个网页

    介绍 我们已经使用基本的 HTML 编写了一个网页.但是,写出来的 HTML 代码的网页看起来很平淡,没有吸引力. 如何改善这种很平淡的页面呢? 让我们开始使用网页的基本样式来改善页面效果,我们将会使 ...

  4. JavaScript dom 标签属性

    节点: 平时开发中常用的节点是: 元素节点:nodeType值是 1    --> <a>,<p>...... 属性节点:nodeType值是 2    --> t ...

  5. static,你还敢用吗?

    我用火狐的HttpRequester测试开发组里一个同学发布的Web API接口,遇到了一个奇怪的问题. 我测试边界情况时,第一次调用响应的结果是正常的,但当再次及以后的请求时,却返回了异常“Syst ...

  6. Android笔记——AsyncTask介绍

    AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操 ...

  7. <!--[if IE 9]>....<!end if-->

    1.页面里面经常看到类似[if it IE 9],表示的是限定某些浏览器版本才能执行的语句. ! [if ! IE] 含义:如果不是IE It [if it IE 9] 含义:如果是IE9 Ite [ ...

  8. Hadoop Shell命令大全

    hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于大多数程序猿/媛来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大 ...

  9. node实现watcher的困境

    @(node,watcher) watcher,在如今的前端领域已经数见不鲜了.目前流行的gulp流程工具提供了watcher的选项,是我们在开发过程中不需要手动进行触发构建流程,转而根据文件(目录) ...

  10. 原生JS实现"旋转木马"效果的图片轮播插件

    一.写在最前面 最近都忙一些杂七杂八的事情,复习软考.研读经典...好像都好久没写过博客了... 我自己写过三个图片轮播,一个是简单的原生JS实现的,没有什么动画效果的,一个是结合JQuery实现的, ...