1. ホーム
  2. ios

[解決済み] Swiftでタブをプログラム的に切り替える

2023-03-28 08:29:13

質問

iOSアプリの起動時に表示を別のタブに切り替える(例えば、最初のタブではなく、2番目のタブがデフォルトで表示されるように)コードを書く必要があります。

私はSwiftの初心者で、次のように解決しました。

  • コードはおそらく、最初のタブのViewControllerのオーバーライドfunc viewDidLoad()関数に入るはずです。

  • 次のコードは、2番目のViewControllerを表示しますが、下部のタブバーは表示しません(vcOptionsは2番目のViewControllerのタブアイテムです。

let vc : AnyObject! = self.storyboard.instantiateViewControllerWithIdentifier("vcOptions")
self.showViewController(vc as UIViewController, sender: vc)

UITabbarController.selectedIndex = 1を使用することに答えがあるのではないかと思うのですが、どのように実装すればいいのかよくわかりません。

どのように解決するのですか?

もし、あなたの window rootViewControllerUITabbarController (ほとんどの場合そうです)である場合、アクセスは tabbardidFinishLaunchingWithOptions の中に AppDelegate ファイルに記述します。

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
    // Override point for customization after application launch.

    if let tabBarController = self.window!.rootViewController as? UITabBarController {
        tabBarController.selectedIndex = 1
    }

    return true
}

これは、タブを開く際に index で指定された(1)の selectedIndex .

もし、これを viewDidLoadfirstViewController を使用する場合は、フラグで管理するか、選択されたタブを追跡する別の方法が必要です。 これを行うのに最も適しているのは didFinishLaunchingWithOptionsAppDelegate ファイルまたは rootViewController カスタムクラス viewDidLoad .