UITabBar
是什么呢?我们能够在大多数的app中看到它,以微信为例,底部的 微信
、通讯录
、发现
、我
,这一栏被称为TabBar
。这里的每一项叫做TabBarItem
。实现UITabBar
的方法有两种。
一、通过storyboard
拖拽
TabBar
完全可以通过storyboard
拖拽出来,并进行编辑,拖拽出来以后,默认有一个TabBarController
和两个ViewController
,可以通过Attribute inspector
对UITabBarItem
进行编辑,设置title
、image
、hilightImage
等。然后还可以通过拖拽更多的ViewController
绑定到TabBarController
上去,绑定的时候,会自动为ViewController
添加TabBarItem
二、使用代码为存在于storyboard
的view创建TabBar
首先需要为TabBar
创建一个UITabBarViewController.swift
,在这个controller中实现一个对其进行初始化的方法
class UITabBarViewController: UITabBarController {
func initView(){
var story = UIStoryboard(name: "Main", bundle:nil)
var noloVC = story.instantiateViewControllerWithIdentifier("nolo") as! ViewController
var nav = UINavigationController(rootViewController: noloVC)
nav.title = "nav"
self.addChildViewController(nav)
}
}
然后需要在AppDelegate.swift
文件中实例化并载入窗口
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
var tab = UITabBarViewController()
tab.initView()
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = tab
self.window?.backgroundColor = UIColor.redColor()
self.window?.makeKeyAndVisible()
return true
}
三、小结
有两个需要注意的地方
1、
var story = UIStoryboard(name: "Main", bundle:nil)
Main
指的是Main.storyboard
2、
var noloVC = story.instantiateViewControllerWithIdentifier("nolo") as! ViewController
nolo
是ViewController
的Storyboard ID
如果Main.storyboard
只有一个ViewController
,可以使用以下方法
var noloVC = story.instantiateInitialViewController() as! ViewController