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的更多相关文章

  1. iOS学习笔记——滚动视图(scrollView)

    滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性 @interface BoViewController : UIViewController<UIScro ...

  2. [ios学习笔记之视图、绘制和手势识别]

    一 视图 二 绘制 三 手势 00:31 UIGestureRecognizer 抽象类 两步 1添加识别器(控制器或者视图来完成) 2手势识别后要做的事情 UIPanGestureRecognize ...

  3. IOS 学习笔记(2) 视图UINavigationController

    1.栈 导航控制器自身有一个针对显示内容的栈,也有一个对于导航栏的栈,当有新的内容欲显示时,进的导航栏和显示内容会被压入此栈,这样原本显示中的导航栏和显示内容则会进入到栈的更深一层中,根据栈的先进后出 ...

  4. iOS学习笔记-自己动手写RESideMenu

    代码地址如下:http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars数 ...

  5. iOS学习笔记——AutoLayout的约束

    iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...

  6. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

  7. iOS学习笔记10-UIView动画

    上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...

  8. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

  9. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

随机推荐

  1. 散列表的实现 -- 数据结构与算法的javascript描述 第八章

    散列表(哈希表 散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用. 散列表需要一个散列值(key)来存储指定数据,取数据也是依靠此. 散列值可以依靠计算数据的 ASCII码来获得,但是这 ...

  2. JavaSE思维导图(六)

  3. Android App开发常用专题开源代码

    Android App开发中用到过的专题类开源代码: 项目的需求多了,不知不觉成了Github摘抄员,感谢分享精神,节省了很多弯路和时间.不过想要实现指定效果,还是要看懂作者的思路才好下手改造. 主题 ...

  4. MSSQL 当前会话设置隔离级别与查询

    之前因为MySQL没有with(nolock)这种写法,于是想设置隔离级别,结果被坑. 直觉以为和MSSQL一样只要打set transaction isolation level xxx 就能搞定 ...

  5. 今年暑假不AC1

    Description "今年暑假不AC?"  "是的."  "那你干什么呢?"  "看世界杯呀,笨蛋!"  " ...

  6. Html页面操作json串

    System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaSc ...

  7. Django 探索(一) HelloWorld

    一.Django怎么读 酱狗 二.Django下载 安装 下载地址 安装: tar zxvf Django-1.5.4.tar.gz python setup.py install 三.建立一个Hel ...

  8. css em

    em与px换算 任意浏览器的默认字体高度16px(16像素).所有未经调整的浏览器都符合: 1em=16px.那么,12px=0.75em,10px=0.625em.为了简化font-size的换算, ...

  9. php 前端获取数据

    <pre name="code" class="python"><!doctype html> <html lang=" ...

  10. Mysql 学习记录

    ( xampp 的mysql 与 直接用 dnf 安装的 mysql 有冲突! ) 1. 数据库基本知识: 一张表的行 又称为 记录 一张表的列 又称为 字段 表结构:所有字段,规定了你的每一条记录所 ...