iOS UINavigationBar-导航栏、UINavigationItem-导航项
一、什么是导航栏(UINavigationBar)。
UINavigationBar(导航栏)是UINavigationController(导航控制器)的一个属性。是导航栏控制器上的一个组成部分。
*一个导航栏控制器包含一个导航栏(UINavigationBar)
*一个子控制器对应一个导航项(UINavigationItem)
*导航控制器管理一系列子控制器。UINavigationBar管理一系列UINavigationItem,每个UINavigationItem对应一个子控制器。
注意:如图浅蓝色部分即是UINavigationItem,NavigationItem是在视图控制器上的,它是试图控制器的一个属性,也是一个组成部分,而不是在NavigationBar上,所以你会看到在viewController里有self.navigationItem这样的代码。UINvigationController每push一次UINavigationBar就会对应上相应的UINavigationItem。
二、设置导航栏(UINavigationBar)标题等
1、使用导航栏内置的标题
在试图控制器viewController中用self.title=@"导航栏标题";就OK了。
2、自定义导航栏标题
UINavigationItem有几个常用的属性,如下:(摘抄自文档,部分属性)
@property(nonatomic,copy) NSString *title;//标题
@property(nonatomic,retain) UIView *titleView;//这是个view,能放在view上的东西应该都可以放在上面。我们可以根据这个属性自定义标题,也可以加图片背景等。
@property(nonatomic,copy) NSArray *leftBarButtonItems NS_AVAILABLE_IOS(5_0);//在导航栏(UINavigationItem)上可以放button。左边的button,当然也有右边的button。如下原理一样。
@property(nonatomic,copy) NSArray *rightBarButtonItems NS_AVAILABLE_IOS(5_0);
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;
根据titleView属性自定义导航栏标题:
UILabel * titleLabel = [[UILabel alloc] initWithFrame: CGRectMake(0, 0, 100, 44)];
titleLabel.backgroundColor = [UIColor redColor];
titleLabel.text = @"我的视图控制器";
self.navigationItem.titleView = titleLabel; //为什么titleView会=titleLabel呢?因为UILabel是继承与UIView的。
写到这我们会发现viewController的标题,就是控制器viewController上navigationItem的上的一个继承与UIView的view,即titleView。
navigationItem是继承与NSObject的。navigationItem是试图控制器viewController上的一部分,是它的一个属性。navigationItem也有title,也有一个titleView,如:
self.navigationItem.title=@"";//一般我们不常设置这个属性
self.navigationItem.titleView=@"";//titleView是navigationItem上用来放置标题,背景图等得地方。设置导航栏背景图,就是根据这个属性设置的。
初学iOS,如有错误,请不吝赐教,比改之。
转载于:https://www.cnblogs.com/ios-mengxiang/p/4357710.html
iOS UINavigationBar-导航栏、UINavigationItem-导航项相关推荐
- 后台管理页面通过点击左侧导航栏的菜单项实现右边内容的改变
目录 前端页面部分 js代码部分 左侧导航栏组菜单项的打开与关闭 url地址跳转 地址栏url地址处理 ajax实现右边页面内容变换 内容面板上Bootstrap 面包屑导航 前端页面部分 <a ...
- 【Flutter】底部导航栏实现 ( BottomNavigationBar 底部导航栏 | BottomNavigationBarItem 导航栏条目 | PageView )
文章目录 一.Scaffold 组件 二.底部导航栏整体架构 三.BottomNavigationBar 底部导航栏 四.BottomNavigationBarItem 导航栏条目 五.PageVie ...
- MIPCMS模板开发之导航栏隐藏某项导航
文章目录[隐藏] 前言 功能描述 普通带子导航的导航栏 隐藏某个导航栏 前言 以前研究一段时间的MIPCMS模板编写,其实在开发的时候还是遇到了坑的,由于不咋会 php 所以只能到处找,因为这个 cm ...
- iOS 原生导航栏 修改导航栏文字颜色 大小
为什么80%的码农都做不了架构师?>>> // 黑色导航栏 状态栏 self.navigationController.navigationBar.barStyle = UIB ...
- html中关于侧边导航栏和导航栏的编写
侧边导航栏 <style>.box{width: 50px;height: 50px;background-color: #483957;transition: width .5s,bac ...
- bootstrap4 左侧导航栏 优秀 大气_制作动态效果的后台导航栏——左侧导航
怎么制作动态效果的后台导航栏呢,一起来文中看看~ 先上完成效果: 整体的制作过程 1. 制作菜单元件 分别制作导航菜单中的每个元件,制作好一个以后,就可以复用了,制作步骤如下: 使用矩形,制作单个导航 ...
- CSS导航栏 水平导航栏出炉
越往后面这速度就降低下来了,前面的简单可以快速过去. <!DOCTYPE html> <html lang="en"><head><met ...
- android 自定义标签导航栏,自定义导航栏app下载-自定义导航栏(Custom Navigation Bar) 安卓版v0.4.3-PC6安卓网...
自定义导航栏(Custom Navigation Bar)app是款非常好用的实用工具,自定义导航栏能让你自己设置个性的导航栏,再也不用为单调的导航栏而发愁,独特且唯一,感兴趣的朋友就来下载自定义导航 ...
- 仿小米导航栏;导航栏悬浮滚动更改背景色javascript实现;
一.实现效果 小米字体没引用,导航栏文字随便调的,仅供参考 二.代码 1.html <!DOCTYPE html> <html lang="en">< ...
- 水平导航栏+导航栏跟随+导航栏下划线滑动效果
先放代码: HTML: <!doctype html> <html> <head> <meta charset="utf-8"> & ...
最新文章
- Angular CLI 使用教程指南参考
- REST API 支持方式
- RDF -- 资源描述框架
- Windows 7安装MySQL最后一步提示错误“mysql 终结点映射器中没有更多的终结点可用的” 解决方法...
- Kotlin1.6.20好用的新特性:多receiver扩展函数,绝不可空类型,并行编译kotlin减少编译时间
- MySQL线程共享内存参数
- Linux执行命令unable to create new native thread问题
- python爬虫天气数据_python爬虫:天气数据的分析
- 媒体智能-淘宝直播流媒体互动实践 | D2 分享视频+文章
- 一文尽览 ECCV 2020 旷视研究院15篇论文
- 《白话强化学习与PyTorch》第1章 强化学习是什么----读书笔记
- Struts框架可以支持以下哪种程序开发语言?(选择1项)
- 实用工具【SqlPrompt】 【Subline】 【XMind】 【PhotoShop】 【TakeColor】 【Q+】本次只讨论SqlPrompt...
- 东风风神汽车4S店管理系统
- 【fences下载】
- 珍藏的Android开发必备网站和工具(开发工具总结)
- Ubuntu设置定时任务——每10秒钟执行一次命令(修改文件权限)
- 手游代理平台怎么挑选?
- Windows10下安装Git
- 红外图像-自然图像对(Color-Thermal)数据集,附加百度云链接
热门文章
- HTMl中3d变换卡片制作方法,CSS如何实现卡片3D翻转效果
- vue点击按钮打开下拉菜单_vue 点击弹出下拉菜单 点击其他页面收回菜单
- linux重启网络服务后什么端口都不通,linux的端口不通怎么解决
- JQuery自动点击事件加载load事件和 AJAX异步请求加载
- 帆软删除行操作提示并确认 js:FR.Msg.confirm
- jdbc代码_Mysql Java 驱动代码阅读笔记及 JDBC 规范笔记
- Java 实现区块链中的区块,BLOCK的实现
- 泛型的继承和通配符,同时归纳集合部分的面试点
- linux 杀掉僵尸进程 (zombie process, defunct)
- Java集合---HashMap源码剖析