IOS 学习笔记(3) 视图UITabbarController
1.UITabbarViewController标签试图控制器。由于标签页本就起着分类的作用,所以往往呈现的视图内容之间,可以是毫不相关的功能。
UITabbarViewController仍然继承自UIViewController,但标签栏和导航栏都有着始终处于所有视图最前端的特性。
对于标签页栏,他是一个UITabbar类的对象,无论横竖屏,在其之上可以放置最少1个,最多5个的标签页。当然如果有更多的标签页的话,页栏会将最后的标签页改变成一个默认的"More"标题带有默认的“...”图片的标签项目。
并且,UITabbarController还支持排序的编辑功能,只要开发者为UITabbarController的customizableViewControllers属性配置上支持编辑的所有试图控制器,在随后的“”More“标签项所显示的导航视图右上方,用户可以点击”Edit“开启编辑模式,自定义想要显示在标签栏页上的项目,以及相互之间的顺序。
2.标签页上的标记
当试图控制器和某个标签页互相关联后,开发者就可以通过视图控制器对象的tabBarItem属性来访问到标签项目,对于标记来说,只需要对tabBarItem的badgeValue赋上字符串内容即可,
self.navigationController.tabBarItem.badgeValue=badgeTxtF.text
3.标签栏上的警告框
由于UITabbarController的UITabbar对象对于整个视图层次来说,处于一种始终位于最前最上层的状态。所以当开发者有需要以UIActionSheet进行警告框的呈现时,不再适用于showInView的方法,取而代之的时UIActionSheet对象的showFromTabBar方法
UIActionSheet *sheet=[[UIActionSheet alloc]initWithTitle:@"测试警告框" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"重要按钮" otherButtonTitles:nil]; [sheet showFromTabBar:self.tabBarController.tabBar];
4.隐藏标签栏
就像上一节我们介绍的导航栏和状态栏隐藏那样,标签栏在某些情况下同样也支持隐藏。
这里之所以要说到”某些情况下“,是因为默认的标签栏无法隐藏,即使我们强行将UITabbar对象的hidden属性设置成了YES,整个界面上会在标签栏的位置留下一片空白,任何试图控制器都无法将其真正覆盖。
但是到标记项目所对应的视图控制器是一个导航视图控制器,当为导航视图控制器压栈显示一个新视图时,开发者可以通过新视图控制器的hidesBottomBarWhenPushed来让新的视图显示在无标签栏的状态下。由于新的视图会填满标签栏所在位置而造成自己的高度拉伸,视图上面的所有控件需要保持位置的正确。
testVC.hidesBottomBarWhenPushed=YES;
IOS 学习笔记(3) 视图UITabbarController的更多相关文章
- iOS学习笔记——滚动视图(scrollView)
滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性 @interface BoViewController : UIViewController<UIScro ...
- [ios学习笔记之视图、绘制和手势识别]
一 视图 二 绘制 三 手势 00:31 UIGestureRecognizer 抽象类 两步 1添加识别器(控制器或者视图来完成) 2手势识别后要做的事情 UIPanGestureRecognize ...
- IOS 学习笔记(2) 视图UINavigationController
1.栈 导航控制器自身有一个针对显示内容的栈,也有一个对于导航栏的栈,当有新的内容欲显示时,进的导航栏和显示内容会被压入此栈,这样原本显示中的导航栏和显示内容则会进入到栈的更深一层中,根据栈的先进后出 ...
- iOS学习笔记-自己动手写RESideMenu
代码地址如下:http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars数 ...
- iOS学习笔记——AutoLayout的约束
iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
- iOS学习笔记10-UIView动画
上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...
- iOS学习笔记总结整理
来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
随机推荐
- 转换成CSV文件、Word、Excel、PDF等的方法--读取CSV文件的方法
1. 转换成CSV文件: http://www.dotnetgallery.com/lab/resource93-Export-to-CSV-file-from-Data-Table-in-Aspne ...
- JavaScript引用类型之Object类型
在JavaScript中大多数的引用类型都是Object的实例,Object类型也是使用最多的类型! 创建Object类型实例的方式有两种,下面分别来分析一下: (1)第一种是使用new操作符后跟Ob ...
- JavaScript之数组学习
在JavaScript中,数组用关键字Array来声明.声明数组的同时还可以指定数组初始元素的大小,也就是数组的长度;下面代码定义了一个数组长度为6的数组; var beatles=Array(6); ...
- gulp使用心得
本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情.那就直接开始吧. 第一步 ...
- GWT RPC机制
GWT RPC GWT RPCRemote Procedure Calls GWT: Google Web Toolkit的缩写,有了 GWT可以使用 Java 编程语言编写 AJAX 前端,然后 G ...
- Oracle操作数据库oracleHelper
1 Oracle OracleHelper //============================================================================ ...
- C学习之结构体
结构体(struct) 结构体是由基本数据类型构成的.并用一个标识符来命名的各种变量的组合,结构体中可以使用不同的数据类型. 1. 结构体说明和结构体变量定义 在Turbo C中, 结构体也是一种数据 ...
- ORA-01045: user XXZY lacks CREATE SESSION privilege; logon denied
在创建用户时,一般我们都分配connect.dba.resource 角色,但是,为什么登陆时还报错呢 原因:用户角色没有激动 解决:ALTER USER XXXX DEFAULT ROLE &quo ...
- spoj 10606 Balanced Numbers 数位dp
题目链接 一个数称为平衡数, 满足他各个数位里面的数, 奇数出现偶数次, 偶数出现奇数次, 求一个范围内的平衡数个数. 用三进制压缩, 一个数没有出现用0表示, 出现奇数次用1表示, 出现偶数次用2表 ...
- call和apply方法的理解
第一种:直接先来个粟子吧... ; } var child = {}; console.log(child); //Object() 对象 Parent.call(child); console. ...