Swift - 使用UITabBarController UINavigationcontroller搭建项目

首先记得在AppDelegate指定rootViewController

        window = UIWindow (frame: UIScreen.main.bounds)
        window?.rootViewController = TabbarController()
        window?.makeKeyAndVisible()

然后在TabbarController里写入下面两个方法并使用就好

    private func addChildViewController() {
        addChildViewController(controller: HomeViewController(), title: "首页", imageName: "tabbar_home")
        addChildViewController(controller: MessageViewController(), title: "消息", imageName: "tabbar_message")
        addChildViewController(controller: DiscoverViewController(), title: "发现", imageName: "tabbar_discover")
        addChildViewController(controller: MeViewController(), title: "我", imageName: "tabbar_me")
    }
    
    private func addChildViewController(controller:UIViewController, title:String,imageName:String) {
        controller.tabBarItem.image = UIImage(named: imageName)
        controller.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")
        controller.tabBarItem.title = title
        
        let nav = NavigationController()
        nav.addChildViewController(controller)
        addChildViewController(nav)
    }

创建NavigationController,在这里我们可以对导航栏做一些默认配置,比如字体,颜色,大小什么的,而且在这里去自定义左侧返回按钮比较方便

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        
        self.interactivePopGestureRecognizer!.delegate = nil;
        
        let appearance = UINavigationBar.appearance()
        appearance.isTranslucent = false
        
        appearance.setBackgroundImage(UIImage.imageWithColor(color: Color_NavBackground, size: CGSize(width: 1, height: 1)), for: UIBarMetrics.default)
        
        var textAttrs:[String:AnyObject] = Dictionary()
        textAttrs[NSForegroundColorAttributeName] = UIColor.white
        textAttrs[NSFontAttributeName] = UIFont.systemFont(ofSize: 16)
        
        appearance.titleTextAttributes = textAttrs
        
    }

这样一个项目的基本框架就算搭建完成了,四个主页面建议继承一个BaseViewController,方便我们做一些公共部署。

推荐阅读更多精彩内容

  • iOS的坐标系 原点是屏幕的左上角,各机型取值范围如下表所述: UIView 视图的类(略讲) @property...
    JavaLily阅读 2,591评论 0 25
  • 但有时候对我来说,爱他,就等于睡了他
    皓皓是个好姑娘阅读 26评论 0 1
  • “我多么希望,有一个门口早晨,阳光照在草上我们站着,扶着自己的门扇门很低,但太阳是明亮的草在结它的种子风在摇它的叶...
    素怀阅读 475评论 3 12
  • 忙忙碌碌的一天又一天,时光在一天天的溜走。 对于未来,好迷茫。总觉得自己还小,现在不必想那么多。 可是我错了,我不...
    女故阅读 47评论 0 1
  • 天初晴,鸟随鸣。清新一片自风景。 春光暖,窗浸明。柔情似水如美玉。
    一席之宾阅读 70评论 0 2