ルート画面に下タブを追加する

UITabBarController を利用することで、タブを表示することが可能。

前回の記事でrootViewControllerに指定した RootViewController ファイルを以下のように書き換えると、2タブの画面が表示される。 今回の例では、NavigationControllerもセットしています。

画面表示

f:id:muchan611:20190714162139p:plain:w300

コード

import UIKit

class RootViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let firstViewController = UIViewController()
        firstViewController.view.backgroundColor = .white
        let firstNavigationController = UINavigationController(rootViewController: firstViewController)
        firstNavigationController.tabBarItem = UITabBarItem(tabBarSystemItem: .favorites, tag: 1)

        let secondViewController = UIViewController()
        secondViewController.view.backgroundColor = .white
        let secondNavigationController = UINavigationController(rootViewController: secondViewController)
        secondNavigationController.tabBarItem = UITabBarItem(tabBarSystemItem: .bookmarks, tag: 2)

        let viewControllers = [firstNavigationController, secondNavigationController]
        setViewControllers(viewControllers, animated: false)
    }
}

ちなみに、好きなアイコンを指定したい、という場合は、tabBarItemを以下のように指定する。

firstNavigationController.tabBarItem = UITabBarItem(title: "ホーム", image: UIImage(named: "home"), tag: 1)

上記の場合、home.pngを事前に追加しているが、画像追加手順については Xcodeで画像リソースを追加するに記述。