##DAY7 UINavigationController

时间:2022-01-22 21:32:51

##DAY7 UINavigationController

#pragma mark ———————UINavigationController———————————

概括:

导航视图控制器也是一个视图控制器,TA管理了多个视图控制器,是系统提供给我们的容器视图控制器

导航视图控制器至少管理一个子视图控制器,这个视图控制器称为导航视图控制器的根视图控制器

如果我们的程序想要采用导航视图控制器进行布局,我们需要指定window的根视图控制器为导航视图控制器

初始化:

initWithRootViewController:

#pragma mark ———————navigationItem———————————

每一个加到导航视图控制器内部的视图控制器自带一个属性叫navigationItem

TA可以配置当前页面导航条的显示内容,比如左、右按钮,标题等。

navigationItem属性的子属性:

title

leftBarButtonItem

leftBarButtonItems

titleView

#pragma mark ———————UIBarButtonItem———————————

创建UIBarButtonItem类,设置为navigationItem的leftBarButtonItem(s)或rightBarButtonItem(s):

initWithTitle:style:target:action: 显示标题

initWithBarButtonSystemItem:target:action: 使用系统自带的图标样式

initWithImage:style:target:action: 使用自定义图标样式

注意:这里的图片会受UIBarButtonItem的影响,要添加图片原生渲染

initWithCustomView: 使用自定义视图

#pragma mark ———————navigationController———————————

navigationController属性的子属性:

viewControllers

navigationBarHidden 设置导航栏的隐藏属性,不使用导航条,但是使用导航条的递进关系等

navigationBar

navigationController属性的方法:

pushViewController:animated: 执行入栈操作,引用计数+1 second覆盖到root上面

popToViewController:animated: 创建一个新的视图控制器是不合适的,导航视图控制器是栈,root还是存在于最下面的

navigationController的模态的过渡风格属性:

modalTransitionStyle

navigationController的模态的方法:

presentViewController:animated:completion:

dismissViewControllerAnimated:completion:

#pragma mark ———————navigationBar———————————

navigationBar属性的子属性:

barStyle 设置导航栏样式

backgroundColor 设置导航条的背景颜色

barTintColor 设置导航栏颜色

tintColor 设置导航栏元素颜色

translucent 设置导航栏的默认效果,默认YES,如果为YES,屏幕左上角为坐标原点;

如果为NO,导航栏上的子视图的坐标原点为 导航栏左下角