LoginSignup
6
5

More than 3 years have passed since last update.

【Swift】UITabBarControllerでアプリ起動時に指定したタブを表示する

Posted at

UITabBarControllerで最初にデフォルト表示されるタブを指定する方法です。
調べてもObjective-Cでの記述ばかりだったので残しておきます。

結論

TabBarController.swiftを作りselectIndexで表示したいタブの番号を指定する

TabBarController.swift
class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        selectedIndex = 1
    }
}

これで理解できる方、この記事はここまでです。

以下、順にTabbarController.swiftを作った場合と作らなかった場合の挙動と、実装の手順を示していきます。

確認環境

Xcode 11.1
iOS 13.1(Simulator)
Storyboard使用

プロジェクト生成

画像のような状態のデモプロジェクトを用いて進めます。
TabBarControllerに3つのViewControllerを付けておきます。
背景色やタブアイコンは分かりやすさのために適当にしています。

TabBarController.swiftが無い場合

アプリを起動すると一番左のタブが表示されます

TabBarController.swiftがある場合

TabBarController.swiftを作る

XcodeでTabBarController.swiftを作りましょう

作ったファイルで以下のように記述します

TabBarController.swift
import UIKit

class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        selectedIndex = 1
    }
}

クラス付けをする

Storyboardで先ほど作ったTabBarController.swiftとUITabBarControllerを紐づけます
スクリーンショット 2019-11-07 19.12.01.png

再びアプリ起動

再びアプリを起動すると2番目のタブが最初に表示されるようになります。

もちろん、selectedIndex = 2とすれば一番右のタブが最初に表示されます。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5