Swift - 标签条(UITabBar)标签页控制器(UITabBarController)用法
App底部的tab标签页可以方便的把功能模块划分清楚,只需点击相应的标签页就可以展示完全独立的视图页面,同时各标签页间的视图也可以进行数据交换。

Controller放入一个Tab Bar Item。然后建立Tab Bar Controller和新建的View
Controller之间的segue关联。即按住Ctrl键,拖动Tab Bar Controller到View
Controller,在弹出的上下文菜单中选择View Controller即可。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import UIKitclass ViewController: UIViewController,UITabBarDelegate { //添加Tab Bar控件 var tabBar:UITabBar! //Tab Bar Item的名称数组 var tabs = ["公开课","全栈课","设置"] //Tab Bar上方的容器 var contentView:UIView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //在底部创建Tab Bar tabBar = UITabBar(frame: CGRectMake(0,CGRectGetHeight(self.view.bounds)-64,CGRectGetWidth(self.view.bounds),44)) var items:[UITabBarItem] = [] for tab in self.tabs { var tabItem = UITabBarItem() tabItem.title = tab items.append(tabItem) } //设置Tab Bar的标签页 tabBar.setItems(items, animated: true) //本类实现UITabBarDelegate代理,切换标签页时能响应事件 tabBar.delegate = self //代码添加到界面上来 self.view.addSubview(tabBar); //上方的容器 contentView = UIView(frame: CGRectMake(0,0,CGRectGetWidth(self.view.bounds),CGRectGetHeight(self.view.bounds)-44)) self.view.addSubview(contentView) var lbl = UILabel(frame:CGRectMake(100,200,100,20)) //定义tag,在用户切换tab时能查询到label控件 lbl.tag = 1 contentView.addSubview(lbl) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // UITabBarDelegate协议的方法,在用户选择不同的标签页时调用 func tabBar(tabBar: UITabBar!, didSelectItem item: UITabBarItem!) { //通过tag查询到上方容器的label,并设置为当前选择的标签页的名称 (contentView.viewWithTag(1) as UILabel).text = item.title }} |
3,使用代码实现标签页控制器(TabBarController)
--- ViewController.swift ---
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button:UIButton = UIButton(type: UIButtonType.System) button.frame=CGRectMake(100, 150, 100, 30) button.setTitle("开始游戏", forState:UIControlState.Normal) button.addTarget(self,action:Selector("tapped"),forControlEvents:UIControlEvents.TouchUpInside) self.view.addSubview(button); } func tapped(){ self.presentViewController(MainTabViewController(), animated:true, completion:nil) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }} |
--- MainTabViewController.swift ---
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import UIKitclass MainTabViewController:UITabBarController{ override func viewDidLoad() { super.viewDidLoad() //一共包含了两个视图 let viewMain = MainViewController() viewMain.title = "2048" let viewSetting = SettingViewController() viewSetting.title = "设置" //分别声明两个视图控制器 var main = UINavigationController(rootViewController:viewMain) main.tabBarItem.image = UIImage(named:"first") var setting = UINavigationController(rootViewController:viewSetting) setting.tabBarItem.image = UIImage(named:"second") self.viewControllers = [main,setting] //默认选中的是游戏主界面视图 self.selectedIndex = 0 }} |
--- MainViewController.swift ---
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import UIKitclass MainViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() //改成主视图背景白色背景 self.view.backgroundColor = UIColor.whiteColor() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }} |
--- SettingViewController.swift ---
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import UIKitclass SettingViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor(red:109/255, green:218/255, blue:255/255, alpha:1) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }} |
Swift - 标签条(UITabBar)标签页控制器(UITabBarController)用法的更多相关文章
- 标签视图控制器UITabBarController
标签视图控制器 UITabBarController FirstViewController*first = [[FirstViewController alloc] init]; //创建一个UIT ...
- UITabBarController — 标签视图控制器
UITabBarController - 标签视图控制器 UITabBarController 分为三层结构: (1).tab bar (2.)Custom Content (3.). Tab bar ...
- UITabBarController ---- 标签视图控制器
直接上代码: // // AppDelegate.m // // #import "AppDelegate.h" #import "RootViewController. ...
- Bootstrap标签页(Tab)插件
标签页(Tab)在Bootstrap导航元素一章中简介过,通过结合一些data属性,您可以轻松地创建一些标签页界面.通过这个插件您可以把内容放置在标签页或胶囊式标签页甚至是下拉菜单标签页中. 用法 您 ...
- swift:简单使用翻页控制器UIPageViewController
一.小叙 UIPageViewController是一个实现图书阅读的控制器,使用它可以设置书脊位置.单双页.过渡效果等,它是通过代理的方式来实现翻页,也即上一页.下一页.最终这个UIPageView ...
- 用标签页TitleSwitch切换不通的控制器
用标签页TitleSwitch切换不通的控制器 教程效果: 项目开发中效果: 各种源码: TitleSwitch.h 与 TitleSwitch.m (这个是修改过的升级版本) // // Title ...
- Bootstrap 标签页和工具提示插件
一.标签页 标签页也就是通常所说的选项卡功能. //基本用法 <ul class="nav nav-tabs"> <li class="active&q ...
- JavaScript插件——标签页
JavaScript插件——标签页 前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/3404867.html ...
- js基础--浏览器标签页隐藏或显示状态 visibility详解
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 在工作中我们可能会遇到这样的需求,当浏览器切换到别的标签页或着最小化时,我们需要暂停页面上正在播放的视频或者音乐,这个需求 ...
随机推荐
- Linux下arp用法
[功能] 管理系统的arp缓存. [描述] 用来管理系统的arp缓存,常用的命令包括: arp: 显示所有的表项. arp -d address: 删除一个arp表项. arp -s addre ...
- 基于visual Studio2013解决C语言竞赛题之0708字符串查找
题目
- 蓝桥杯java高职组
标题1: 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中 国清华大学讲学. 一次,他参加某个重要会议,年轻的脸孔引人注目.于是 ...
- 11gOCP 1z0-052 :2013-09-11 MGR_ROLE role........................................................A66
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11584537 正确答案A 实验测试 1.创建用户:SKD gyj@OCM> crea ...
- cloudflare的新waf,用Lua实现的
我们使用nginx贯穿了我们的网络,做前线web服务,代理,流量过滤.在某些情况下,我们已经扩充了nginx上我们自己的模块的核心C代码,但近期我们做了一个重大举措,与nginx结合使用lua 差点儿 ...
- 用c#开发微信(10) JSSDK 基本用法 分享接口“发送到朋友”
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包.通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享. ...
- document.body的一些用法以及js中的常见问题
document.body的一些用法以及js中的常见问题 网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight ...
- Swift - 经纬度位置坐标与真实地理位置相互转化
通过CoreLocation类,得到的定位信息都是以经度和纬度等表示的地理信息,通过CLGeocoder类可以将其反编码成一个地址.反之,也可根据一个地址获取经纬度. 1,通过经纬度获取地址 1 2 ...
- EasyUI - Tabs 选项卡标签
基本效果: 效果图: html代码: <div id="tab"> <div title="tab1" > <p>tab1& ...
- PL/SQL(二):变量
变量 标识符定义 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同.要求和限制有: 个字符. )首字符必须为字母. )不区分大小写. )不能使用SQL保留字. )对标识符的命名最好遵循 ...