UINavigationController相关

1.  UINavigationController 视图结构

UINavigationController(导航控制器)是一个容器控制器, 其内部展示着多个UIViewController(视图控制器)的内容, 我们可以通过UINavigationController的view属性获取到其自身的视图, 在该视图上有一个位于界面顶部的UINavigationBar(导航栏)和位于界面底部的默认隐藏的UIToolbar(工具栏), 以及一个位于界面中间部分的UIViewController的view




当用户在UINavigationController的层级结构中来回切换时, UINavigationBar和UIToolbar的内容会随着发生变化, 但是其本身并不会发生变化, 唯一发生变化的就是位于界面中间部分的UIViewController的view


2. UINavigationController堆栈管理

UINavigationController通过其管理的UIViewController堆栈来决定展示在UINavigationController中间部位的内容, 该内容由位于UIViewController堆栈栈顶位置的UIViewController来决定。



我们可以利用系统提供的方法向UIViewController堆栈中Push一个UIViewController, 从UIViewController堆栈中Pop一个UIViewController, 也可以直接设置UIViewController堆栈中的全部UIViewController


3. UINavigationBar管理

UINavigationController负责创建、配置及管理UINavigationBar, 其通过位于UIViewController堆栈栈顶位置的UIViewController的navigationItem属性(该属性位于UIViewController的UINavigationControllerItem类目中)来管理UINavigationBar展示的内容, 同时UINavigationController也提供了navigationBar属性, 允许开发者通过该属性设置UINavigationBar的外观。UINavigationBar是一个在层级结构中起导航作用的视觉控件, 其一般展示形式如下图所示:

UINavigationBar虽然继承自UIView, 但是其并非通过addSubview:方法来添加子视图, 而是通过其管理的UINavigationItem堆栈来决定展示在UINavigationBar中的内容



层次结构图:


我们可以利用系统提供的方法向UINavigationItem堆栈中Push一个UINavigationItem, 从UINavigationItem堆栈中Pop一个UINavigationItem, 也可以直接设置UINavigationItem堆栈中的全部UINavigationItem

修改导航栏颜色:

(1) 设置导航栏背景颜色 : 直接设置 navigationBar.barTintColor

(2) 设置导航栏背景图片: navigationBar.setBackgroundImage:****


4. UIToolBar管理

UINavigationController负责创建、配置及管理UIToolbar, 其通过位于UIViewController堆栈栈顶位置的UIViewController的toolbarItems属性(该属性位于UIViewController的UINavigationControllerContextualToolbarItems类目中)来管理UIToolbar展示的内容, 同时UINavigationController也提供了toolbar属性, 允许开发者通过该属性设置UIToolbar的外观






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值