用Storyboard构建标签栏多页面应用程序UI_html/css_WEB-ITnose
简述
标签栏应用程序是一种多视图应用程序,它在屏幕底端显示一行按钮,称为标签栏(tab bar)。单机某个按钮就会激活一个新的视图控制器(标签页),并显示一个新视图,同时底部任然保留着标签栏。如下图所示的3个标签栏。
另一种常见的多视图iPhone应用程序是基于导航的应用程序,这类应用程序拥有一个导航控制器,使用导航栏控制一系列分层的视图。导航控制器跟踪所在的视图深度,并且向你提供控制权,让你可以回到之前的视图。而标签栏用于从两个或更多选项中选择一个选项,而且只能选择一个(标签栏多是用于并列平行的页面间的选择)。
参考:该简述主要参考《精通iOS开发》第六章:多视图应用程序
Storyboard构建标签栏
这里我们讲述一下用Storyboard构建标签栏多视图应用程序UI的方法。
1选择Tab Bar Controller
首先在Storyboard的对象选择中选择一个Tab Bar Controller:
在Storyboard中我们可以看到如下图所示的UI界面,第一个页面(Tab Bar Controller)我们不需要对它进行操作,因为我们对它的标签页(后面两个页面)的操作会自动更新到Tab Bar Controller上面。
2添加我们自己的TableView Controller
从上图可以看到Tab Bar Controller拖入Storyboard中的时候就自带了两个标签页,其类型为View Controller,我们可以将其删除然后按照我们的需要添加我们自己的视图控制器。
首先我们删除第一个自带的View Controller,然后从右边拖入一个TableView Controller;
如上图所示,添加自己的TableView Controller之后,从Tab Bar Controller到TableViewController建立跳转(按住Control,从Tab Bar Controller向TableViewController拖线),从上图我们我们可以看到除了平常的push、modal、custom三种方式之外,多出了一个View Controllers,这里我们应该选择这种连接;
3修改标签栏中的标签样式
选中我们刚才添加的TableViewController中的标签图标(Tab Bar Item),
在属性检查器中查看属性:
这里我们可以修改上面标出的两个项。第一个是标签图标下面显示的文字,第二个是图标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源代码可以再这里下载:
Guo Liu
于8/23/2014星期六第一次编辑
上一篇: laravel5.4数据填充实例分享
下一篇: 关于symlink的详细介绍