iOS开发UI篇—UITabBarController简单介绍

iOS开发UI篇—UITabBarController简单介绍

一、简单介绍

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。

 

转 UITabBarController简单介绍的更多相关文章

  1. iOS开发UI篇—UITabBarController简单介绍

    iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...

  2. [BS-09] UITabBarController简单介绍

    iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...

  3. 文顶顶 iOS开发UI篇—UITabBarController简单介绍 iOS开发UI篇—UITabBarController简单介绍

    一.简单介绍 UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例 ...

  4. UITabBarController简单介绍

    一.简单介绍 UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例 ...

  5. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇—多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  6. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  7. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  8. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  9. yii2的权限管理系统RBAC简单介绍

    这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...

随机推荐

  1. .net托管平台appharbor使用

    这篇文章是网上转过来的,在AppHarbor使用Git上传Code的时候,需要输入用户名和密码,就是appharbor登陆的用户名和密码. 可以参考这篇文章http://www.freehao123. ...

  2. java hashtable

    java hashtable Hashtables提供了一个很有用的方法可以使应用程序的性能达到最佳. Hashtables(哈希表)在计算机领域中已不 是一个新概念了.它们是用来加快计算机的处理速度 ...

  3. Excel 操作类

    转载:http://www.cnblogs.com/fellowcheng/archive/2010/08/21/1805158.html ExcelHelper(Excel2007) Code hi ...

  4. C++ 常见崩溃问题分析

    一.前言 从事自动化测试平台开发的编程实践中,遭遇了几个程序崩溃问题,解决它们颇费了不少心思,解决过程中的曲折和彻夜的辗转反侧却历历在目,一直寻思写点东西,为这段难忘的经历留点纪念,总结惨痛的教训带来 ...

  5. AP_AP系列 - 相关设定的简述(概念)

    2014-07-08 Created By BaoXinjian

  6. JAVA 方法重载

    方法的重载是指:一个类中可以定义有相同的名字,但参数不同的多个方法,调用时会根据不同的参数列表选择对应的方法. 实例: W.java public class W{ public void F(Str ...

  7. Laravel 5 IDE Helper 安装

    一.项目地址 https://github.com/barryvdh/laravel-ide-helper 二.安装方法 1.方法一:直接使用已经生成的文件 下载 https://gist.githu ...

  8. android之location03

    private class ButtonListener implements OnClickListener { @Override public void onClick(View v) { // ...

  9. 拥抱高效、拥抱 Bugtags 之来自用户的声音(五)

    Bugtags使用心得(创业公司场景篇) ——成都嘿嘿科技有限公司 作者:小花 一.产品定义 关于手机客户端产品(APP)的 bug 提交.监测及管理且具有团队协作性质的系统. 二.使用环境 公司:初 ...

  10. doc2vec 利用gensim 生成文档向量

    利用gensim 直接生成文档向量 def gen_d2v_corpus(self, lines): with open("./data/ques2_result.txt", &q ...