如何在swift中设置标签栏控制器的默认选项卡

kau*_*uai 7 uitabbarcontroller ios swift

我是Swift的新手,在Objective-C知识量表上大约有五分之一的人.

我创建了一个基本的三个标签Swift应用程序.每个选项卡都有一个关联的swift类文件,例如FirstViewController.swift,SecondViewController.swift,ThirdViewController.swift.

当我选择第三个选项卡时,我现在使用ThirdViewController.swift中viewDidAppear函数覆盖打开应用程序首选项设置,例如:

override func viewDidAppear(animated: Bool) {
    // open app preference s
    if let url = NSURL(string:UIApplicationOpenSettingsURLString) {
        UIApplication.sharedApplication().openURL(url)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在打开首选项之前,我想将活动选项卡设置回第一个选项卡.如何在Swift中优雅地完成这项工作.

以下不起作用:

self.tabBarController.selectedIndex = 0
Run Code Online (Sandbox Code Playgroud)

由于UIViewController该的ThirdViewController类没有一个tabBarController.

布莱恩.

kau*_*uai 8

用户Omkar在上面回答了正确答案.我可以使用ThirdViewController.swft中的以下viewDidAppear成功切换第一个选项卡

override func viewDidAppear(animated: Bool) {         
    self.tabBarController?.selectedIndex = 0     
}
Run Code Online (Sandbox Code Playgroud)


ziz*_*utg 5

我按照@Paolo Sangregorio方式执行以下代码

在appdelegate中查找applicationDidBecomeActive功能并添加此行

let tabBarController = self.window?.rootViewController as! UITabBarController
tabBarController.selectedIndex = 0
Run Code Online (Sandbox Code Playgroud)