1.创建一个UITableController

2.为每个Tab创建一个视图控制器

3.创建一个array  把视图控制器都添加到array中 在把array放到UITabBarCtrl的Controllers中

4.设置根视图为tabBar

*只有在支持旋转的设置  才会旋转  发生旋转时只有当前的ViewController才会接受到旋转的消息

*对于UITabBar自带的tabBar  不能直接去修改

//修改背景图片

UIImage *tabBackground = [UIImage imageNamed:@"main_title2.png"];

if ([tabBarController.tabBar respondsToSelector:@selector(setBackgroundImage:)]){

[tabBarController.tabBar setBackgroundImage:tabBackground];

}

常用委托

//当点击tabBarItem时触发该操作

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *) viewController {

NSLog(@"%d", viewController.tabBarItem.tag);

}

通过代理我们可以监测UITabBarController的当前选中viewController的变化,以及moreViewController中对编辑所有viewController的编辑。通过实现下面方法:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;

  该方法用于控制TabBarItem能不能选中,返回NO,将禁止用户点击某一个TabBarItem被选中。但是程序内部还是可以通过直接setSelectedIndex选中该TabBarItem。

  下面这三个方法主要用于监测对moreViewController中对view controller的edit操作

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers;

- (void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed;

- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed;

改变UITabBarController中当前显示的viewController

 1、selectedIndex属性

  通过该属性可以获得当前选中的viewController,设置该属性,可以显示viewControllers中对应的index的viewController。如果当前选中的是MoreViewController的话,该属性获取出来的值是NSNotFound,而且通过该属性也不能设置选中MoreViewController。设置index超出viewControllers的范围,将会被忽略。

  2、selectedViewController属性

  通过该属性可以获取到当前显示的viewController,通过设置该属性可以设置当前选中的viewController,同时更新selectedIndex。可以通过给该属性赋值

tabBarController.moreNavigationController可以选中moreViewController。

  3、viewControllers属性

  设置viewControllers属性也会影响当前选中的viewController,设置该属性时UITabBarController首先会清空所有旧的viewController,然后部署新的viewController,接着尝试重新选中上一次显示的viewController,如果该viewController已经不存在的话,会接着尝试选中index和selectedIndex相同的viewController,如果该index无效的话,则默认选中第一个viewController。

UITabBarItem

//小红圈提示

barItem1.badgeValue = @"1";

//给选中的状态和未选中的状态指定不同的图片

[item setFinishedSelectedImage:[UIImage imageNamed:@"second.png"]

withFinishedUnselectedImage:[UIImage imageNamed:@"first.png"]];

//每个UIController中都有一个navigationItem和一个tabBarItem 一般创建一个相应类型的对象  对其赋值

//系统样式

UITabBarItem * barItem1 = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemContacts tag:0];

barItem1.badgeValue = @"1";

yvCtrl.tabBarItem = barItem1;

//自定义样式

firstController.tabBarItem=[[UITabBarItem alloc] initWithTitle:@"First" image:[UIImage imageNamed:@"img.png"] tag:101]

//重写ViewController里的init   在初始化里添加Item

(id)init {

if ([super init] != nil) {

UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"asdfsadf" image:[UIImage imageNamed:@"WWAN5.png"] tag:1];

self.tabBarItem = item;

[item release];

}

return self;

}

转载于:https://www.cnblogs.com/ldming/archive/2012/06/12/2546725.html

UITabBarController相关推荐

  1. UIViewController、UINavigationController与UITabBarController的整合使用

    UINavigationController与UITabBarController是iOS开发中最常用的两种视图控制器,它们都属于UIViewController的子类,继承关系如下: @interf ...

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

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

  3. UITabBarController跳转任意界面的方法

    为什么80%的码农都做不了架构师?>>>    方式一:  将自定义控件添加到self.tabBarController.view上,然后使用self.tabBarControlle ...

  4. IOS之UITabBarController

    在学习IOS开发过程中,针对于UITabBarController的使用也不少出现,UITabBarController和UINavigationController类似,UITabBarContro ...

  5. iOS:切换视图的第三种方式:UITabBarController标签栏控制器

    UITabBarController:标签栏控制器 •通过设置viewControllers属性或者addChildViewController方法可以添加子控制器 –NSArray *viewCon ...

  6. UITabBarController 笔记(三) UITabBarController 配合 UINavigationController 的使用

    建个空的iOS工程 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictiona ...

  7. UITabBarController+UINavigationController+UIToolBar

    一,各种名称和位置 //技巧一键换肤     [[UINavigationBar appearance]setBarTintColor:[UIColor redColor]];//给所有的Naviga ...

  8. iOS开发中标签控制器的使用——UITabBarController

    iOS开发中标签控制器的使用--UITabBarController 一.引言 与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理 ...

  9. 学习笔记:UITabBarController使用详解

    一.手动创建UITabBarController 最常见的创建UITabBarController的地方就是在application delegate中的 applicationDidFinishLa ...

最新文章

  1. Google经典面试题解析
  2. Springmvc+Easyui 搜索,新增,删除,修改
  3. 使用VS进行远程调试
  4. oracle全库快照,Oracle数据库快照的使用
  5. research development course at ifm
  6. 【报错解决】linux网络编程报错storage size of ‘serv_addr’ isn’t known解决办法
  7. [Android Memory] Android系统中查看某个应用当前流量的方法
  8. matlab 韩明距离_科学网—Matlab中 pdist 函数详解(各种距离的生成) - 朱新宇的博文...
  9. arm+linux书籍
  10. java长连接_java如何实现http长连接
  11. 做一名有幸福感的计算机教师,做一名有幸福感的教师其实很简单
  12. Uniapp打iOS离线包到出ipa安装思路
  13. 游戏开发之NGUI字体集制作
  14. Windows10 使用Win32.Mak 进行makefile编译
  15. 项目2-Time类中的运算符重载
  16. 2023 IEEE Fellow出炉:唐立新、宗成庆、朱军、姬水旺、李佳等入选
  17. 分享8款最新超酷HTML5/CSS3特效及源码
  18. EEPROM 24C02 24C64误换Debug
  19. 树莓派python蓝牙_用树莓派玩转蓝牙
  20. Maven 报异常 Duplicated tag: ‘properties‘ (position: START_TAG seen ...<!-- \u96c6\u4e2d\

热门文章

  1. 从tomcat下载文件的配置方法(很全呢)
  2. linux-命令替换-通配符-重定向-管道
  3. 【教程】新手如何制作简单MAD和AMV,学不会那都是时辰
  4. Objective-C中new与alloc/init的区别
  5. constrain to margins
  6. 调查用QQ企业邮箱的smtp需要添加spf1
  7. C#与Excel互操作
  8. Firefox下载自动保存
  9. Linux学习准备工作
  10. 迪士尼又出黑科技,可将自然语言脚本转化为VR视频