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 ...
随机推荐
- Kali linux安装漏洞扫描工具Nessus指南
引子:Nessus是著名信息安全服务公司tenable推出的一款漏洞扫描与分析软件,号称是"世界上最流行的漏洞扫描程序,全世界超过75,000个组织在使用它".虽然这个扫描程序能够 ...
- pywebkitgtk安装出现的问题
configure 文件里 print sys.prefix 等不能支持python3的原因 依据http://blog.csdn.net/jklfjsdj79hiofo/article/detail ...
- XmlSerializer
XmlSerializer作用是将对象序列化到 XML 文档中和从 XML 文档中反序列化对象.XmlSerializer 使您得以控制如何将对象编码到 XML 中. 所在的命名空间:System.X ...
- Unity 3d 刚体
1.起始的设置如下图: 这是我们运行游戏,方块并不会往下掉. 2.选中CUBE,然后添加刚体 此时再运行,会发现场景的方块会自动掉在地上. 3.我们来看一下刚体的属性 ...
- Windows Server 中开启 SQL Server 2008 的1433端口
在Windows Server2008 服务器上部署了Microsofit SQL Server2008 R2 ,想让远程机器能够访问,于是开放1433端口,进行了如下设置: 1.打开“本地安全策略” ...
- BZOJ 1812: [Ioi2005]riv( 树形dp )
树背包, 左儿子右兄弟来表示树, dp(x, y, z)表示结点x, x的子树及x的部分兄弟共建y个伐木场, 离x最近的伐木场是z时的最小代价. 时间复杂度O(N^2*K^2) ----------- ...
- python之面向对象那点事
一.类与对象 1.什么是类?类,顾名思义,就是具体相同属性的同一类事物的统称及抽象.对象,指是就是具体的抽象类的实例 以上的说法是不是看起来有点云里来雾里去呢.没错,专业的解释总是让人难以理解,这就是 ...
- Python 标识符
Python 标识符 在python里,标识符有字母.数字.下划线组成. 在python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. python中的标识符是区分大小写的. 以 ...
- 修改IIS虚拟目录名称
@echo off echo ------------------------------------------------------------------------------ echo - ...
- 查看、修改oracle字符集,查看oracle版本
1.查看数据库字符集 数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集. 客户端字符集环境select * fr ...