一、什么是导航栏(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-导航项相关推荐

  1. 后台管理页面通过点击左侧导航栏的菜单项实现右边内容的改变

    目录 前端页面部分 js代码部分 左侧导航栏组菜单项的打开与关闭 url地址跳转 地址栏url地址处理 ajax实现右边页面内容变换 内容面板上Bootstrap 面包屑导航 前端页面部分 <a ...

  2. 【Flutter】底部导航栏实现 ( BottomNavigationBar 底部导航栏 | BottomNavigationBarItem 导航栏条目 | PageView )

    文章目录 一.Scaffold 组件 二.底部导航栏整体架构 三.BottomNavigationBar 底部导航栏 四.BottomNavigationBarItem 导航栏条目 五.PageVie ...

  3. MIPCMS模板开发之导航栏隐藏某项导航

    文章目录[隐藏] 前言 功能描述 普通带子导航的导航栏 隐藏某个导航栏 前言 以前研究一段时间的MIPCMS模板编写,其实在开发的时候还是遇到了坑的,由于不咋会 php 所以只能到处找,因为这个 cm ...

  4. iOS 原生导航栏 修改导航栏文字颜色 大小

    为什么80%的码农都做不了架构师?>>>    // 黑色导航栏 状态栏 self.navigationController.navigationBar.barStyle = UIB ...

  5. html中关于侧边导航栏和导航栏的编写

    侧边导航栏 <style>.box{width: 50px;height: 50px;background-color: #483957;transition: width .5s,bac ...

  6. bootstrap4 左侧导航栏 优秀 大气_制作动态效果的后台导航栏——左侧导航

    怎么制作动态效果的后台导航栏呢,一起来文中看看~ 先上完成效果: 整体的制作过程 1. 制作菜单元件 分别制作导航菜单中的每个元件,制作好一个以后,就可以复用了,制作步骤如下: 使用矩形,制作单个导航 ...

  7. CSS导航栏 水平导航栏出炉

    越往后面这速度就降低下来了,前面的简单可以快速过去. <!DOCTYPE html> <html lang="en"><head><met ...

  8. android 自定义标签导航栏,自定义导航栏app下载-自定义导航栏(Custom Navigation Bar) 安卓版v0.4.3-PC6安卓网...

    自定义导航栏(Custom Navigation Bar)app是款非常好用的实用工具,自定义导航栏能让你自己设置个性的导航栏,再也不用为单调的导航栏而发愁,独特且唯一,感兴趣的朋友就来下载自定义导航 ...

  9. 仿小米导航栏;导航栏悬浮滚动更改背景色javascript实现;

    一.实现效果 小米字体没引用,导航栏文字随便调的,仅供参考 二.代码 1.html <!DOCTYPE html> <html lang="en">< ...

  10. 水平导航栏+导航栏跟随+导航栏下划线滑动效果

    先放代码: HTML: <!doctype html> <html> <head> <meta charset="utf-8"> & ...

最新文章

  1. Angular CLI 使用教程指南参考
  2. REST API 支持方式
  3. RDF -- 资源描述框架
  4. Windows 7安装MySQL最后一步提示错误“mysql 终结点映射器中没有更多的终结点可用的” 解决方法...
  5. Kotlin1.6.20好用的新特性:多receiver扩展函数,绝不可空类型,并行编译kotlin减少编译时间
  6. MySQL线程共享内存参数
  7. Linux执行命令unable to create new native thread问题
  8. python爬虫天气数据_python爬虫:天气数据的分析
  9. 媒体智能-淘宝直播流媒体互动实践 | D2 分享视频+文章
  10. 一文尽览 ECCV 2020 旷视研究院15篇论文
  11. 《白话强化学习与PyTorch》第1章 强化学习是什么----读书笔记
  12. Struts框架可以支持以下哪种程序开发语言?(选择1项)
  13. 实用工具【SqlPrompt】 【Subline】 【XMind】 【PhotoShop】 【TakeColor】 【Q+】本次只讨论SqlPrompt...
  14. 东风风神汽车4S店管理系统
  15. 【fences下载】
  16. 珍藏的Android开发必备网站和工具(开发工具总结)
  17. Ubuntu设置定时任务——每10秒钟执行一次命令(修改文件权限)
  18. 手游代理平台怎么挑选?
  19. Windows10下安装Git
  20. 红外图像-自然图像对(Color-Thermal)数据集,附加百度云链接

热门文章

  1. HTMl中3d变换卡片制作方法,CSS如何实现卡片3D翻转效果
  2. vue点击按钮打开下拉菜单_vue 点击弹出下拉菜单 点击其他页面收回菜单
  3. linux重启网络服务后什么端口都不通,linux的端口不通怎么解决
  4. JQuery自动点击事件加载load事件和 AJAX异步请求加载
  5. 帆软删除行操作提示并确认 js:FR.Msg.confirm
  6. jdbc代码_Mysql Java 驱动代码阅读笔记及 JDBC 规范笔记
  7. Java 实现区块链中的区块,BLOCK的实现
  8. 泛型的继承和通配符,同时归纳集合部分的面试点
  9. linux 杀掉僵尸进程 (zombie process, defunct)
  10. Java集合---HashMap源码剖析