swift学习之UITabBar

UITabBar是什么呢?我们能够在大多数的app中看到它,以微信为例,底部的 微信通讯录发现,这一栏被称为TabBar。这里的每一项叫做TabBarItem。实现UITabBar的方法有两种。

一、通过storyboard拖拽

TabBar完全可以通过storyboard拖拽出来,并进行编辑,拖拽出来以后,默认有一个TabBarController和两个ViewController,可以通过Attribute inspectorUITabBarItem进行编辑,设置titleimagehilightImage等。然后还可以通过拖拽更多的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  

noloViewControllerStoryboard ID
如果Main.storyboard只有一个ViewController,可以使用以下方法

var noloVC = story.instantiateInitialViewController() as! ViewController 

推荐阅读更多精彩内容