UITabBarController

UITabBarController的结构

1.创建一个UITabBarController

UITabBarController通常作为rootViewController,且不能添加到别的container viewController中。最常见的创建UITabBarController的地方就是在application delegate中的applicationDidFinishLaunching:方法中。

//1.创建一个UITabBarController对象(这个自建类继承子UITabBarController)
RootViewController *tabView=[RootViewController new];
//2.创建tabbarcontroller中每一个tab对应的要显示的对象
UIViewController *fVC=[[UIViewController alloc]initWithNibName:nil bundle:nil];
fVC.title=@"FristVC";
UIViewController *sVC=[[UIViewController alloc]initWithNibName:nil bundle:nil];
sVC.title=@"secondeVC";
//3.以数组第形式将vc加载到viewControllers中
tabView.viewControllers=[NSArray arrayWithObjects:fVC,sVC, nil];
//4.加载到rootview
self.window.rootViewController=tabView;

 

只有当viewControllers里面所有的VC都支持该方向的旋转,当前页面才会旋转。 

2.设置UITabBarItem

UITabBar上面每一个Tab都对应着一个ViewController,设置该viewcontroller的tabBarItem属性来改变tabbar上对应的tab显示内容。如没有设置,系统将会根据viewController的title自动创建一个,该tabBarItem只有文字,没有图像。当我们自己创建UITabBarItem的时候,我们可以指定显示的图像和对应的文字。

UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"AAAAAAA" image:nil tag:1];
//设置2种状态的图标
[item setFinishedSelectedImage:[UIImage imageNamed:@"second.png"]
  withFinishedUnselectedImage:[UIImage imageNamed:@"first.png"]];
//设置类似新消息提示的红圈 item.badgeValue=@"1";
self.tabBarItem = item;

 

最多可以同时显示4个图标,过超过4个,会出现一个more的图标(具体可以看自带的ipod程序),点击这个按钮出现一个navigationViewController的导航页面,里面是table,列出所有未显示的items,右上角是一个编辑按钮,点进去可以进行所有的items排序,可以通过设置UITabBarController的customizableViewControllers属性(注意也是NSArray)指定一个子集,只有这一部分v的iewControllers是可以放到tabBar中显示的。但每当UITabBarController的viewControllers属性发生变化的时候,customizableViewControllers就会自动设置成跟viewControllers一致,即默认的所有的viewController都是可以编辑的,如果我们要始终限制只是某一部分可编辑的话,在每次viewControlles发生改变的时候,重新设置一次customizableViewControllers。

3.tab切换

a.按tabBarItem切换

b.不按tabBarItem也可以进行tab切换,有3 属性控制(注意属性可set可get)

  • selectedIndex属性(NSInteger)唯一问题是more没办法选中,get的话返回NSNotFound,超出序列会忽略。
  • selectedViewController属性(UIViewController)
  • viewControllers属性   整个都更新了,当然当前vc也会变化,会先找最后一次的vc是否存在,没有,按最后一次的index,如果也没有,就显示新序列里面的。

4.UITabBarControllerDelegate

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

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

- (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;

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2013-12-09 16:22  EnamelPot 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/EnamelPot/p/3465627.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值