首页 > 代码库 > 用Storyboard构建标签栏多页面应用程序UI

用Storyboard构建标签栏多页面应用程序UI

主要内容

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

 

简述

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


 

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

 

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

 

Storyboard构建标签栏

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

1选择Tab Bar Controller

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

计算机生成了可选文字:下〕bB己rController一Acontrollerthatmanagesaseto十viewcontrollersthatrepresent..七

Storyboard中我们可以看到如下图所示的UI界面,第一个页面(Tab Bar Controller)我们不需要对它进行操作,因为我们对它的标签页(后面两个页面)的操作会自动更新到Tab Bar Controller上面。

计算机生成了可选文字:标签页1TabBa价Contr0lle户标签页2。、.‘与拭…iLv。。一r二腼乙』b‘Co",rO"rl

 

2添加我们自己的TableView Controller

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

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

如上图所示,添加自己的TableView Controller之后,从Tab Bar ControllerTableViewController建立跳转(按住Control,从Tab Bar ControllerTableViewController拖线),从上图我们我们可以看到除了平常的pushmodalcustom三种方式之外,多出了一个View Controllers,这里我们应该选择这种连接;

 

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

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

计算机生成了可选文字:

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

计算机生成了可选文字:D日曰,,砂O了臼bBarltemB司geIdenti杭er}Custom牛Title一DefaultPOSition:BarltemTitle!temImageTagl训Enabled。’日

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

计算机生成了可选文字:

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

计算机生成了可选文字:.ItemZ

同样,我们可以删掉其自带的另一个ViewController然后添加我们需要的TableViewController,然后重复我们刚才的操作:

计算机生成了可选文字:

 

4添加一个新的Controller

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

计算机生成了可选文字:{e硕6W只、八伞口口冲一令朴lOlra七日盯p门白自脚口目白Tab他VIe、甲七七仁T目日阮协吧,.C心.t门I阮f口皿目已口写一~,一

这里我们可以看到,在未连接新添加的TableView ControllerTab Bar Controller的时候,标签栏只有两个标签,同时新添加的TableView Controller中也没有标签栏。然后我们按照刚才的方法连接Tab Bar Controller,操作完全一致。

计算机生成了可选文字:旧0leV.e勺Vp、,d八犷月,卜口口口且反口一曰.C创肠自nn仆仆.1p门自目目.亡州白叽eVIBW:一啤产l一‘1知日触丫触份CO.tlo日er.

可以看到当连接Tab Bar ControllerTableView Controller之后Tab Bar Controller中的标签栏标签数自动变成了3个。同样我们可以修改新添加的TableViewController中的标签样式。

计算机生成了可选文字:VleWI函9v二wZvlew3

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

5运行

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

计算机生成了可选文字:105模拟器一iPhoneRetina(4一inch)11057.1(…105模拟器一iPhoneRetina(4一inch)11057.1(…105模拟器一iPhoneRetina(4一inch)11057.1(…Ca币6r今7:48PM仇行rstCa币6r今7:48PM口口口口.Ca币6r今7:48PM口口口口.仇SeCOndToZ仇thi川丁his15ths行FStVieWThiS15theSeC0ndVieW丁his15thethiFd旦且V二Wl囱V比协9Vle脚3且且仍.脚1囱叭e恻29Vle喇3且且仍e时1川eWZ9功e喇3

 

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源代码可以再这里下载:

 

Guo Liu

8/23/2014星期六第一次编辑

用Storyboard构建标签栏多页面应用程序UI