web-dev-qa-db-ja.com

swift)のUITabBarでデフォルトタブを設定する

私はプロジェクトをほぼ終了し、最後のいくつかのUIの問題を解決しています。私のアプリはタブバーを使用してナビゲートし、美的目的で、最初のタブではなく最後のタブ(ユーザープロファイル)でアプリを開きたいと考えています。 Interface Builderでタブを並べ替えることができることは知っていますが、最初にプロファイルタブがあり、他の場所にホームタブがあると、タブバーが奇妙に見えます。プロファイルタブを5番目のタブのままにして、デフォルトでそのタブでアプリを開くにはどうすればよいですか?

9
Nicholas Dill

TabBarControllerのselectedIndexを設定するだけです。これらの線に沿った何か。

var freshLaunch = true
override func viewWillAppear(animated: Bool) {
     if freshLaunch == true {
         freshLaunch = false
         self.tabBarController.selectedIndex = 4 // 5th tab
     }
}
12
Mark McCorkle

タブバーコントローラーのインターフェイスビルダーから直接これを行う良い方法がありますアイデンティティインスペクターをクリックし、ユーザー定義のランタイム属性

この場合、タブバーコントロールの各インデックスは、0ベースの配列のようにインデックスが付けられます。したがって、左端は0、右隣は1、次に2などです。

したがって、私の場合、最初に「タスク」を選択したかったので、selectedIndexをタイプNumberおよび値「1」に設定しました。添付の画像を参照してください。

enter image description here

25
Joseph Astrahan

最初のアイテムビューコントローラに書き込みます

tabBarController?.selectedIndex = 2//required value
2
SHINTO JOSEPH

UISegueからUIStoryBoardを使用している場合は、UIViewControllerを実行しているUISegueでこれを使用できます。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let tabBarController = segue.destination as? UITabBarController
    tabBarController?.selectedIndex = 1
}

または

class TabBarController: UITabBarController {

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

}

UITabBarController自体のこのコード。

1