在 UIKit 中UITabbar 代表了标签栏,而 UITabBarController 对其进行了封装,令多个不同的视图管理与切换变的更加轻松。
构建一个标签栏控制器,首先要为每个按钮准备一个单独的页。每一页都应被创建为UIViewController对象。
构建一个控制器数组:
你的应用程序可能有多个不同的试图控制器,来实现不同的功能。如果你在写一个音乐播放器,可能会有一些控制器,如:MusicList、CurrentPlay、Favourite、SingerList、Settings 等。在创建你的标签栏之前,你应该首先创建一个数组,在其中放置你希望在标签栏中显示的视图控制器对象。
配置按钮属性:
每个标签栏都有他自己的“标签”,定义了他的标签按钮是什么样子。在视图控制器的 init 方法中,可以配置标签栏按钮,定义视图的标题与/或 tabBarItem 属性:
请将 tabBarItem 属性设置为一个 UITabBarItem 对象。你有两种方法可以初始化标签栏中的项目。一种是initWithTitle 可以让你自定义标题和图像等数据来显示按钮。另一种就是创建系统提供的按钮。后者如下:
系统提供的按钮如下:
显示标签栏控制器:
标签栏所需的各个控制器都好了,现在就可以生成我们的标签栏控制器了。忘了讲了,控制器我是在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中生成的。
可定制按钮默认情况下,当按钮多于5个时,标签栏控制器允许拥护对按钮布局进行定制。要做到这一点,可以单击标有“更多”的标签,然后单击随之出现的导航栏上的编辑按钮。你可以选择只对某些特定的标签进行定制,也可以完全禁止定制。要允许定制,请将标签栏控制器的 customizableViewControllers 设置为一个数组,数组中包含有你希望用户进行定制的试图控制器:
导航
当标签栏控制器被显示时,控制器自己处理导航操作,会将选中标签对应视图自动切换到屏幕前端。要读取或者更改当前活动的试图控制器,可以使用 selectedViewController 属性:
也可以使用索引:
委托代理
要在标签栏上的视图被选中时得到通知,请赋予标签栏控制器一个委托:
委托会在选中一个tab时得到通知,然后 didSelectViewController 的委托方法会被调用:
至此结束,最后附上代码工程文件。
UITabBarViewControllerDemo
分享到:
相关推荐
主要介绍了iOS应用开发中UITabBarController标签栏控制器的使用进阶,实例代码为传统的Objective-C,需要的朋友可以参考下
模拟UITabBarController 的父子控制器效果,实现父子控制器管理
SwipeableTabBarController - UITabBarController标签滑动互动
自定义UITabBarController
用UIView仿制标签栏,本质上还是用UIKit的UITabBarController类管理多个View Controller。使用方便灵活,能根据实际情况进行更细致的自定义。
很多时候我们创建一个基于UITabBarController的application以后还希望能够在每个tab view都可以实现导航控制,即添加一个UINavigationController来实现tabview内部的view之间的切换,这即是本文所要介绍的。
自定义的UITabBarController,有一定的封装,调用简单方便
iOS开发UITabBarController和UICollectionView的使用Demo
iOS 自定义UINavigationController和UITabBarController
详细说明了UITabBarViewController的用法,包括使用自定义UITabBar以及使用UITabBarController控件
NULL 博文链接:https://mysuperbaby.iteye.com/blog/1560029
iOS Object-C 自定义封装成 和 UITabBarView一样的功能。主要体现在 UITabBar样式上,可以随意修改 继承UITabBarController 写的 管理切换控制器 主要是写 UITabBar样式是 继承UIView
AZTabBarController AZTabBarController帮助扩展默认UITabBarController的功能,并创建具有自定义外观(带有动画,布局等)的自定义UITabBar项目。 目前仅与Storybo AZTabBarController一起使用AZTabBarController...
OC版本的侧滑控制器 https://github.com/QiaokeZ/OCSlide
ios-dev-resources说明:IOS 开发知识及资源沉淀。一. IOS应用开发知识体系二....- 导航控制器UINavigationBar -- 导航条UINavigationItem -- 导航项,管理显示在导航条上的按钮和视图UITabBarController -- t
一个iOS的app很少只由一个控制器组成,除非这个app极其简单。当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小view,控制器也是如此,用1个控制器去...
继承UITabBarController 写的 管理切换控制器 主要是写 UITabBar样式是 继承UIView //标签栏 _bottomBar = [[RXTabBarBottomView alloc] initWithFrame:self.tabBar.bounds]; _bottomBar.delegate = self; ...