一、简单介绍

UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应⽤。

二、UITabBarController的使用

1.使用步骤:

(1)初始化UITabBarController

(2)设置UIWindow的rootViewController为UITabBarController

(3)创建相应的子控制器(viewcontroller)

(4)把子控制器添加到UITabBarController

2.代码示例

新建一个空的文件,在Application的代理中编码

YYAppDelegate.m文件

 
 1 //
2 // YYAppDelegate.m
3 // 01-UITabBar控制器基本使用
4 //
5 // Created by 孔医己 on 14-6-7.
6 // Copyright (c) 2014年 itcast. All rights reserved.
7 //
8
9 #import "YYAppDelegate.h"
10
11 @implementation YYAppDelegate
12
13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
14 {
15 //1.创建Window
16 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
17 self.window.backgroundColor = [UIColor whiteColor];
18
19 //a.初始化一个tabBar控制器
20 UITabBarController *tb=[[UITabBarController alloc]init];
21 //设置控制器为Window的根控制器
22 self.window.rootViewController=tb;
23
24 //b.创建子控制器
25 UIViewController *c1=[[UIViewController alloc]init];
26 c1.view.backgroundColor=[UIColor grayColor];
27 c1.view.backgroundColor=[UIColor greenColor];
28 c1.tabBarItem.title=@"消息";
29 c1.tabBarItem.image=[UIImage imageNamed:@"tab_recent_nor"];
30 c1.tabBarItem.badgeValue=@"123";
31
32 UIViewController *c2=[[UIViewController alloc]init];
33 c2.view.backgroundColor=[UIColor brownColor];
34 c2.tabBarItem.title=@"联系人";
35 c2.tabBarItem.image=[UIImage imageNamed:@"tab_buddy_nor"];
36
37 UIViewController *c3=[[UIViewController alloc]init];
38 c3.tabBarItem.title=@"动态";
39 c3.tabBarItem.image=[UIImage imageNamed:@"tab_qworld_nor"];
40
41 UIViewController *c4=[[UIViewController alloc]init];
42 c4.tabBarItem.title=@"设置";
43 c4.tabBarItem.image=[UIImage imageNamed:@"tab_me_nor"];
44
45
46 //c.添加子控制器到ITabBarController中
47 //c.1第一种方式
48 // [tb addChildViewController:c1];
49 // [tb addChildViewController:c2];
50
51 //c.2第二种方式
52 tb.viewControllers=@[c1,c2,c3,c4];
53
54
55 //2.设置Window为主窗口并显示出来
56 [self.window makeKeyAndVisible];
57 return YES;
58 }
59
60 @end
 

实现效果:

三、重要说明

1.UITabBar

下方的工具条称为UITabBar ,如果UITabBarController有N个子控制器,那么UITabBar内部就会有N 个UITabBarButton作为子控件与之对应。

注意:UITabBarButton在UITabBar中得位置是均分的,UITabBar的高度为49。

在上面的程序中,UITabBarController有4个子控制器,所以UITabBar中有4个UITabBarButton,UITabBar的结构⼤大致如下图所示:

 

2.UITabBarButton

UITabBarButton⾥面显⽰什么内容,由对应子控制器的tabBarItem属性来决定

 c1.tabBarItem.title=@"消息";
c1.tabBarItem.image=[UIImage imageNamed:@"tab_recent_nor"];

3.有两种方式可以往UITabBarController中添加子控制器

(1)[tb addChildViewController:c1];

(2)tb.viewControllers=@[c1,c2,c3,c4];

注意:展示的顺序和添加的顺序一致,和导航控制器中不同,展现在眼前的是第一个添加的控制器对应的View。

文顶顶 iOS开发UI篇—UITabBarController简单介绍 iOS开发UI篇—UITabBarController简单介绍的更多相关文章

  1. 文顶顶iOS开发博客链接整理及部分项目源代码下载

    文顶顶iOS开发博客链接整理及部分项目源代码下载   网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程 ...

  2. 简单讲解iOS应用开发中的MD5加密的相关使用

      简单讲解iOS应用开发中的MD5加密的相关使用   作者:文顶顶 字体:[增加 减小] 类型:转载 时间:2015-12-19 我要评论 这篇文章主要介绍了iOS应用开发中的MD5加密的相关使用, ...

  3. iOS - 开源框架、项目和学习资料汇总(UI篇)

    上下拉刷新控件 1. MJRefresh --仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.(推荐)2. SV ...

  4. 【设计和开发一套简单自己主动化UI框架】

    !有兴趣的朋友请直接移步Github,本帖子已经不做更新,框架的详细的实现已经做了优化和代码整理,本文仅仅介绍了详细的设计思路! 目标:编写一个简单通用UI框架用于管理页面和完毕导航跳转 终于的实现效 ...

  5. 李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

    从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...

  6. Swift开发iOS项目实战视频教程(一)---iOS真简单

    本课主要介绍iOS项目的创建.第一个iOS项目的开发.UILabel.UIButton的使用. 假设你看完此视频还认为iOS非常难,请你来找我! 本教程摒弃枯燥的语法和知识解说,全是有趣有料的项目实战 ...

  7. 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇)

    系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 前言 好久不见,很久没更新博客了,前段时间 ...

  8. iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例

    本篇博客就使用前面操作SQLite的知识来实现如何去插入,删除和更新数据.然后再把操作SQlite数据库常用的方法进行一个封装.把常用方法进行封装后,把Cars数据库中的其中一个表的数据进行查询,并在 ...

  9. 从C#到Objective-C,循序渐进学习苹果开发(5)--利用XCode来进行IOS的程序开发

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.前面几篇随笔主要介绍C#和O ...

  10. Web程序员开发App系列 - 调试Android和IOS手机代码(补图)

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

随机推荐

  1. 新买一款打印机hp5525N

    11900 RMB 彩色.激光.彩打. 让法国的工艺工程师给改成法语的了.

  2. jsp_javabean

    什么是javabean? 遵循一定的设计原则的任何java类都可以是javabean组件 1.可序列化 implements serializable 2.无参数的构造方法 3.私有属性 通过公有方法 ...

  3. 一天一个类,一点也不累之TreeSet

    一天一个类,一点也不累. 现在要说的是---TreeSet public class TreeSet<E> extends AbstractSet<E> implements ...

  4. 《音乐商店》第4集:自动生成StoreManager控制器

    一.自动生成StoreManager控制器 二.查看 StoreManager 控制器的代码 现在,Store Manager 控制器中已经包含了一定数量的代码,我们从头到尾重新过一下. 1.访问数据 ...

  5. c语言利用指针计算字符串的长度

    可以用strlen函数,这里我们自己写一个. 注意:不能用scanf,scanf一遇到空格就认为输入结束.应该用gets(),遇到换行符或EOF结束.说明可以接受空格. #include<cst ...

  6. NOI08冬令营 数据结构的提炼与压缩

    无聊随手翻,翻到了一个这样的好东西--据结构的提炼与压缩: 为了防止以后忘记,这里把论文里的题目都纪录一下吧. 1.二维结构的化简 问题一:ural 1568 Train car sorting 定义 ...

  7. Deamon Thread 讲解

    The daemon thread's life cycle is same with the life cycle of the application which starts this daem ...

  8. 在Service中使用广播接受者

    1.清单文件 <service android:name="com.example.callmethod.MyService"></service> 2.开 ...

  9. MongoDB---性能优化---(1)

    MONGODB数据架构 升级解决.计划 发现问题  应用server用户数的突然涌入,创建server反应慢  检查server,我发现,每次反应非常慢,至30ops  检查过程  .发现数据库查询缓 ...

  10. EDStarRating(IOS星级评定)

    链接地址:https://github.com/erndev/EDStarRating EDStarRating