UINavigationController

时间:2024-05-04 17:36:44

知识点:

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的隐藏和显示