Swift-UITTabBarControllerを使用したUICNavigationtroller構築プロジェクト

2228 ワード

まずAppDelegateでrootView Controllerを指定したことを覚えてください.
        window = UIWindow (frame: UIScreen.main.bounds)
        window?.rootViewController = TabbarController()
        window?.makeKeyAndVisible()
それからTabbaarControllerに次の二つの方法を書き込んで使ったらいいです.
    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
        
    }
このようなプロジェクトの基本的な枠組みは完成したとしても、4つのホームページはBaseView Controllerを継承することを提案しています.公共の配置をしてくれます.