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

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

一、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;

05-13 22:16