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. 小Y的难题

    Font Size:Aa Aa Aa Description 近期小Y迷上了数学,总是在思考各种数学问题.有一天,他不小心把墨水洒在草稿纸上.他如今能看到的是"2?3?1?4"(? ...

  2. xcode -饼状进度条

    界面搭建 创建一个画饼状的类  eatView 集成UIView #import "eatView.h" @implementation eatView // Only overr ...

  3. C++的标准模板库(STL)简介

    STL(Standard Template Library,标准模板库)是C++对泛型编程思想的实现,最早是惠普实验室开发的.在被引入C++之前该技术就已经存在了很长的一段时间.后来STL成为ANSI ...

  4. 原生js封装table表格操作,获取任意行列td,任意单行单列方法

    V1.001更新增加findTable-min.js 本次更新,优化了代码性能方面,增加了部分新功能,可以获取多个table表格批量操作. 考虑到本人后面的项目中可能涉及到大量的表格操作,提前先封了 ...

  5. tee 解决readonly 文件无法修改

    tee 是什么: 老规矩,找男人问.

  6. Tic-Tac-Toe游戏

    #Tic-Tac-Toe #机器人和人类下井字棋 #全局变量 import random X = "X" O = "O" EMPTY = " &quo ...

  7. 常用CSS HACK

    常用CSS HACK IE6 3像素bug和双边距bug一样的经典 现象: IE6下浮动元素和不浮动元素之间会有3px间隙(3px bug,div.float-left + div.float-non ...

  8. U盘检测软件:ChipGenius,MyDiskTest

    几年前的事情了.有一次去北邮玩,看到校园里有卖U盘的摊位,问了问价格,8GB的金士顿U盘99块钱.正好头一天有个同事跟我说最近U盘降价了,8GB才99,于是心里一痒痒就买了一个.回来用着就感觉不对劲, ...

  9. Delphi2010新发现-类的构造和析构函数功能

    Delphi2010发布了. 虽然凭着对Delphi的热爱第一时间就安装了,但是现在可能是年纪大了,对新事物缺乏兴趣了.一直都没有仔细研究. 今天有点时间试了一下新功能. 本来C#和Delphi.NE ...

  10. Android 蓝牙开发(整理大全)

    Android蓝牙开发 鉴于国内Android蓝牙开发的例子很少,以及蓝牙开发也比较少用到,所以找的资料不是很全. (一): 由于Android蓝牙的通信都需要用到UUID,如果由手机发起搜索,当搜索 ...