看着标题是不是乱的一塌糊涂。。。。。。

在开发中,你非常可能就理不清这些关系,刚好闲的蛋疼,来整理一下吧。

一、UINavigationBar、UINavigationItem、UIBarButtoItem

UINavigationBar是一个控件。 表示UINavigationController(导航控制器)顶部那个玩意儿。UINavigationBar上面显示什么内容,全然由UINavigationItem属性决定。

UINavigationItem是一个模型(不是控件), 它能够设置UINavigationBar中间那部分的内容;

获得方式:

self.navigationItem // self是指控制器

为UINavigationBar设置导航栏内容的方式:

// 设置导航栏中间的内容
self.navigationItem.title
self.navigationItem.titleView

UINavigationBar是view,UINavitgationItem是model;由self.navigationItem(UINavigationItem)给UINavigationBar提供内容数据。

UIBarButtonItem 是一个数据类型。我们在设置导航控制器内容的时候,左右两边相同须要设置,他们各自是:

// 设置导航栏左上角的内容
self.navigationItem.leftBarButtonItem
// 设置导航栏右上角的内容
self.navigationItem.rightBarButtonItem

这里的leftBarButtonItem、rightBarButtonItem的数据类型就是UIBarButtonItem,而这两个又是UINavigationItem的属性。能用点语法点出来也证明了这一点。

总结一点:设置导航控制器中间内容的就用: self.navigationItem.title/tileView = xxx;

左右两边内容就用: self.navigation.leftBarButtonItem/rightBarButtonItem = xxx;

---------------------------------------------------------------切割线-------------------------------------------------------------------------

二、UITabBar、UITabBarButton、UITabBarItem

UITabBar 是一个控件。代表的是UITabBarController的底部的选项卡条。

UITabBarButton是UITabBar底部的每个标签。每个UITabBarButton里面显示什么内容。取决于UITabBarItem,UITabBarButton本身是私有的。开发人员无法获取到。

底部选项卡为什么可以显示图片和文字,全然就是由于它。它的数据来自于UITabBarItem.

UITabBarItem 是一个 模型,

获得方式:

self.tabBarItem // self是指控制器

       作用:能够用来设置当前控制器相应的选项卡标签的内容。

// 标签的标题
self.tabBarItem.title
// 标签的图标
self.tabBarItem.image
// 标签的选中图标
self.tabBarItem.selectdImage

总结一句话: UITabBarButton你获取不到。暂且能够不理它。为底部每一个选项卡设置内容的时候,

就写:  self.tabBarItem.title/image/selectedImage = xxx;

UINavigationbar/UINavigationItem/UITabBar/UITabButton/UITabBarItem粑粑粑粑~的更多相关文章

  1. iOS 开发 中级:UIToolbar,UINavigationBar,UITabBar,UIBarButtonItem,UITabBarItem自定义方法总结

    原文:  http://blog.csdn.net/songrotek/article/details/8692866?utm_source=tuicool 对于UIToolbar,UINavigat ...

  2. 一张图理解UINavigationBar,UINavigationItem,UIBarButtonItem,UITabBar,UITabBarItem,UITabBarButton

  3. iOS - UIKit

    1.UIKit 框架基本结构 1)控件 屏幕上的所有 UI 元素都叫做控件(也有叫做视图.组件),比如按钮(UIButton).文本(UILabel)都是控件. 为了便于开发者打造各式各样的优秀 Ap ...

  4. iOS-学习UIKIt框架的重要性

      前言: 众所周知,我们的移动设备的屏幕上可以展示很多图形界面,作为用户的我们可以通过屏幕上的图形界面浏览信息,也可以通过与图形界面的简单交互,在移动设备上实现各种各样的功能操作.....可以说,没 ...

  5. iOS: 状态栏、导航栏、标签栏、工具栏

    三种项目栏总结: 工具栏:UIToolBar 导航栏:UINavigationBar 标签栏:UITabBar   UIToolBar的按钮单元为:UIBarButtonItem UINavigati ...

  6. iOS-夜间模式(换肤设置)

    概述 iOS 开发中有时候会有夜间模式(换肤设置)的需求, 主要是更改相关颜色操作每次切换夜间/白天模式时,都会发出通知给所有ViewController,让它们切换到相应的主题. 详细 代码下载:h ...

  7. iOS-常用的第三方框架的介绍

    写iOS 程序的时候往往需要很多第三方框架的支持,可以大大减少工作量,讲重点放在软件本身的逻辑实现上. GitHub 里面有大量优秀的第三方框架,而且 License 对商业很友好.一下摘录一下几乎每 ...

  8. 你真的了解UINavigationController吗?

    一:首先查看一下关于UINavigationController的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UINavigationController : ...

  9. iOS 视图控制器转场详解

    iOS 视图控制器转场详解 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标有了大幅度的增长,多谢唐巧前辈的推荐.有些人问我相关的问题 ...

随机推荐

  1. PHPUnit安装(无需PEAR)

    转自:http://www.cnblogs.com/bourneli/articles/2447155.html   phpunit源代码下载:http://pear.phpunit.de/   如何 ...

  2. 【linux高级程序设计】(第十五章)UDP网络编程应用 1

    UDP网络通信流程 UDP没有connect的过程,故发送数据时需要指明目的地址,不能使用read/write/send/recv. 采用sendto()和recvfrom() ssize_t sen ...

  3. 利用Redis生成业务流水号思路

    系统需要生成根据业务类型生成流水号,每天从1开始生成,第二天会清零继续从0开始,流水号格式为: bizCode + date + incr  如:TT-2017112300001. 思路:利用Redi ...

  4. 出现函数重载错误call of overloaded ‘printfSth(double)’ is ambiguous

    class C: { public: void printfSth(int i) { cout<<"C::printfSth(int i):"<<i< ...

  5. 解析转换json xml 集合 ado

    json提取 string str = "[{\"JUDGE_RESULT\":\"B类\",\"JUDGE_RESULT\":\ ...

  6. (25)C#windows服务

    http://www.cnblogs.com/knowledgesea/p/3616127.html http://jingyan.baidu.com/article/fa4125acb71a8628 ...

  7. (4)C#变量,常量,数据类型,转义字符,数据类型转换

    一.变量 程序运行期间能够被改变的量称为变量. 变量名称要用小写字母开头,避免用下划线开头. 如果包含多个单词,从第二个单词开始首字母都要大写. 定义并初始化 double pi = 3.14 二.常 ...

  8. Cookie和Session在Node.JS中的实践(二)

    Cookie和Session在Node.JS中的实践(二) cookie篇在作者的上一篇文章Cookie和Session在Node.JS中的实践(一)已经是写得算是比较详细了,有兴趣可以翻看,这篇是s ...

  9. La 4976 Defense lines

    蓝书紫书上都有的一道题...这里就懒得说题解了. 但是我竟然WA了6次!为什么呢??? 一开始没看见连续子序列..... 后来插入的时候忘判断了是不是比前驱大.... 所以我们只需要维护一个权值递增( ...

  10. ASIHTTPRequest框架使用总结系列之阿堂教程3(异步请求)

    在上一节中,阿堂和网友们分享了ASIHTTPRequest框架对于get,post的同步请求方式.很显然,如果网速比较慢,查询的时候会一直很黑屏,直到请求结束界面才出现结果,这样用户体验肯定很不好了. ...