注:

貌似CSDN的显示效果不佳,假设有须要的话我能够上传pdf格式的;

另外假设文章中有错误还请给位多多提意见,谢谢。

pdf格式文档:http://download.csdn.net/detail/vesper305/7808837;

主要内容

  • 标签栏多视图和导航栏多视图的差别
  • 用Storyboard构建标签栏多视图应用程序

简述

标签栏应用程序是一种多视图应用程序,它在屏幕底端显示一行button,称为标签栏(tab bar)。单机某个button就会激活一个新的视图控制器(标签页),并显示一个新视图,同一时候底部任然保留着标签栏。

例如以下图所看到的的3个标签栏。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmVzcGVyMzA1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="font-family:Arial,Helvetica,sans-serif; font-size:12px">

还有一种常见的多视图iPhone应用程序是基于导航的应用程序,这类应用程序拥有一个导航控制器,使用导航栏控制一系列分层的视图。导航控制器跟踪所在的视图深度,并且向你提供控制权。让你能够回到之前的视图。而标签栏用于从两个或很多其它选项中选择一个选项,并且仅仅能选择一个(标签栏多是用于并列平行的页面间的选择)。

參考:该简述主要參考《精通iOS开发》第六章:多视图应用程序

Storyboard构建标签栏

这里我们讲述一下用Storyboard构建标签栏多视图应用程序UI的方法。

1选择Tab Bar Controller

首先在Storyboard的对象选择中选择一个Tab Bar Controller:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmVzcGVyMzA1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="font-family:Arial,Helvetica,sans-serif; font-size:12px">

在Storyboard中我们能够看到例如以下图所看到的的UI界面。第一个页面(Tab
Bar Controller)我们不须要对它进行操作。由于我们对它的标签页(后面两个页面)的操作会自己主动更新到Tab Bar Controller上面。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmVzcGVyMzA1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="font-family:Arial,Helvetica,sans-serif; font-size:12px">

2加入我们自己的TableView Controller

从上图能够看到Tab Bar Controller拖入Storyboard中的时候就自带了两个标签页。其类型为View
Controller,我们能够将其删除然后依照我们的须要加入我们自己的视图控制器。

首先我们删除第一个自带的View Controller。然后从右边拖入一个TableView Controller;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmVzcGVyMzA1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="font-family:Arial,Helvetica,sans-serif; font-size:12px">

如上图所看到的。加入自己的TableView Controller之后。从Tab Bar Controller到TableViewController建立跳转(按住Control,从Tab
Bar Controller向TableViewController拖线),从上图我们我们能够看到除了寻常的push、modal、custom三种方式之外,多出了一个View
Controllers,这里我们应该选择这样的连接;

3改动标签栏中的标签样式

选中我们刚才加入的TableViewController中的标签图标(Tab Bar Item)。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmVzcGVyMzA1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="font-family:Arial,Helvetica,sans-serif; font-size:12px">

在属性检查器中查看属性:

这里我们能够改动上面标出的两个项。第一个是标签图标以下显示的文字,第二个是图标ICON。以下是我们改动后的效果:

这时。我们查看Tab Bar Controller中的标签栏已经自己主动更新(这就是我们前面提到的不须要改动Tab BarController):

相同,我们能够删掉其自带的还有一个ViewController然后加入我们须要的TableViewController,然后反复我们刚才的操作:

4加入一个新的Controller

在前面我们拖入的Tab BarController仅仅有两个View Controller,同一时候标签栏中也仅仅有两个标签图标。这里我们加入一个新的视图控制器TableViewController

这里我们能够看到,在未连接新加入的TableView Controller课Tab Bar Controller的时候,标签栏仅仅有两个标签,同一时候新加入的TableView
Controller中也没有标签栏。然后我们依照刚才的方法连接Tab Bar Controller,操作全然一致。

能够看到当连接Tab Bar Controller和TableView Controller之后Tab
Bar Controller中的标签栏标签数自己主动变成了3个。相同我们能够改动新加入的TableViewController中的标签样式。

到此时一个有3个TableView标签页的标签栏多页面UI就做好了,后面的工作就是加入Controller和Model了。这里我们不做介绍。

5执行

为了看出标签页的切换,我们再每一个页面中加入了Label。表面页面的切换:

6參考

具体的做法也能够參考这个视频,讲的比較具体:

http://teamtreehouse.com/library/build-a-selfdestructing-message-iphone-app-2/designing-and-starting-the-app/a-storyboard-with-a-tab-bar-controller

备注

这里的标签栏多页面应用程序仅仅是一个单独的标签栏显示。详细怎样进入标签栏页。用什么方式进入,各有什么差别,我们尚未提及,后面《Tab Bar Controller与导航栏》一文中会详述。

该Demo源码能够再这里下载:http://download.csdn.net/detail/vesper305/7808097。

Guo Liu

于8/24/2014星期日第三次编辑

用Storyboard构建标签栏多页面应用程序UI的更多相关文章

  1. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序

    面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 Ajax 为更好的 Web 应用程序铺平了道路 在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java™ ...

  2. 通过Web Api 和 Angular.js 构建单页面的web 程序

    通过Web Api 和 Angular.js 构建单页面的web 程序 在传统的web 应用程序中,浏览器端通过向服务器端发送请求,然后服务器端根据这个请求发送HTML到浏览器,这个响应将会影响整个的 ...

  3. Building Modern Web Apps-构建现代的 Web 应用程序

    Building Modern Web Apps-构建现代的 Web 应用程序 视频长度:1 小时左右 视频作者:Scott Hunter 和 Scott Hanselman 视频背景:Visual ...

  4. 通过Blazor使用C#开发SPA单页面应用程序(1)

    2019年9月23——25日 .NET Core 3.0即将在.NET Conf上发布! .NET Core的发布及成熟重燃了.net程序员的热情和希望,一些.net大咖也在积极的为推动.NET Co ...

  5. Spring WebFlux 教程:如何构建反应式 Web 应用程序

    Spring WebFlux 教程:如何构建反应式 Web 应用程序 反应式系统提供了我们在高数据流世界中所需的无与伦比的响应能力和可扩展性.然而,反应式系统需要经过专门培训的工具和开发人员来实现这些 ...

  6. Ember.js实现单页面应用程序

    1.1.1 摘要 单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序. SPA使用AJAX和HTML5创建流畅且响应迅速的Web应用程序,不会经常 ...

  7. angular-单页面应用程序

    我们都知道angularjs是单一页面应用程序,那什么是单一页面应用程序呢?单一页面应用程序到底有什么好处呢? 下面我们来看一下: 首先我觉得可以把页面的响应模式分成这样大概3个阶段: 1. 最传统的 ...

  8. SPA 单页面应用程序。

    看到这个问题,先说下自己的理解到的程度,再去参考做修正,争取这一次弄懂搞清楚 自己的理解: 单页面应用程序,解决浏览器获取数据刷新页面的尴尬,通过ajax请求获取数据达到异步更新视图的按钮,原理的实现 ...

  9. 如何使用TDD和React Testing Library构建健壮的React应用程序

    如何使用TDD和React Testing Library构建健壮的React应用程序 当我开始学习React时,我努力的一件事就是以一种既有用又直观的方式来测试我的web应用程序. 每次我想测试它时 ...

随机推荐

  1. sublime text 2学习(二):创建可复用的代码片段

    对于前端工程师来讲,写一个html页面的基本结构是体力活,每次去拷贝一个也麻烦,sublime text 2 提供了一个很好的复用代码片段.下面介绍一下创建一个html5的代码片段的过程. 在菜单上点 ...

  2. hashlib模块加密用法

    hashlib 加密模块 hashlib.md5() 构建一个md5的对象,用于调用对象的update方法去加密   例子: import hashlib hash = hashlib.md5() h ...

  3. appium的使用

    这套教程年久失修,问题的人也比较多,于是,我重新整理了一套appium入门教程. appium新手入门(1)—— appium介绍 appium新手入门(2)—— 安装 Android SDK app ...

  4. pressmuSpiderr

    #!/usr/bin/env python # encoding: utf-8 import requests from random import choice from lxml import h ...

  5. JSP(2) - JSP指令 - 小易Java笔记

    JSP指令是给JSP引擎用的,即给服务器用的.作用是告诉服务器,该如何处理JSP中除了指令之外的内容.包括page.include.taglib三种 基本的语法格式:<%@ 指令名称 属性1=& ...

  6. 使用WindowManager添加View——悬浮窗口的基本原理

    Android系统中的“窗口”类型虽然很多,但只有两大类是经常使用的:一是由系统进程管理的,称之为“系统窗口”:第二个就是由应用程序产生的,用于显示UI界面的“应用窗口”.如果大家熟悉WindowMa ...

  7. Log4Net的控制台,WinForm,WebApplication使用

    一.Log4Net的控制台,WinForm,WebApplication使用 1.首先使用nuget 添加log4Net 到控制台项目中 log4j每个符号的具体含义:%d %5p %c{1}:%L ...

  8. 【SQL】单个表的查询

    看到一本好书:名字叫做<数据库系统基础教程> 第三版 岳丽华等译 讲得很清楚,也不啰嗦. 这里是书中第六章的部分笔记: 一.常见用法:  1. AS 定义别名 可省略 2. 可以用加减乘除 ...

  9. Selenium2+python自动化67-用例失败自动截图【转载】

    前言: 装饰器其实就是一个以函数作为参数并返回一个替换函数的可执行函数 上一篇讲到用装饰器解决异常后自动截图,不过并没有与unittest结合,这篇把截图的装饰器改良了下,可以实现用例执行失败自动截图 ...

  10. 转载---sql之left join、right join、inner join的区别

    原文地址:http://www.cnblogs.com/pcjim/articles/799302.html sql之left join.right join.inner join的区别 left j ...