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

实现效果:

三、重要说明

1.UITabBar

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

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

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

 

2.UITabBarButton

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

  1. c1.tabBarItem.title=@"消息";
  2. 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. 如何解决Oracle 11g EM网站报“此网站的安全证书存在问题”

    在IE中输入https://localhost:1158/em 接报错,打不开;提示:“证书错误,此网站安全证书有问题”,解决过程如下: 1.删除与重建dbconsole 2.配置必要的环境变量 1. ...

  2. OpenSSL 双向认证

    在使用OpenSSL进行SSL双向认证时,需要在服务器和客户端配置如下接口函数: SSL_CTX_set_verify(SSL_CTX* ctx,int mode,int (*verify_callb ...

  3. (转)用Eclipse进行C++开发时Bianry not found的问题解决

    本文转载自:http://blog.csdn.net/baimafujinji/article/details/49722399 由于Visual Studio体积过于庞大,很多人选择在Eclipse ...

  4. php特殊字符过滤,html标签处理

    1,magic_quotes_gpc  默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET.POST 和 COOKIE 数据自动运行 addslashes().不要 ...

  5. Tomcat在eclipse中起动成功,主页却打不开

    症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能访问. 关闭eclipse里面的tomc ...

  6. JS截取后缀名,文件全名,非后缀名的方法---收藏(冷饭_)

    <script language="javascript" type="text/javascript"> //取整个文件的路径并且把文件名赋给文件 ...

  7. 对CSS中的Position属性的一些深入探讨

    转:http://www.cnblogs.com/coffeedeveloper/p/3145790.html Position属性 Position的属性值共有四个static.relative.a ...

  8. PopuWindow_2

    点击一个popupwindow窗口之外的区域popupwindow消失,带来的问题!! popupwindow窗口之外的区域popupwindow消失 , 以前说过需要设置: mPopupWindow ...

  9. 启动mongoDB 以及常用操作命令

    nonsql    关系数据库 集合  表 文档 行 启动mongoDB之前首先手动创建存放MongoDB数据文件的目录,如e:\mongo_data 执行命令  mongod --dbpath=e: ...

  10. Laravel中URL,ACTION,ROUTE区别

    创建路由如下所示: Route::get('articles',['uses'=>'ArticlesController@index','as'=>'articles.index']); ...