我是Swift的新手,在目标-C知识量表上,大约十分之五。
我创建了一个基本的三个选项卡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)
}
}不过,在打开首选项之前,我希望将active选项卡设置为第一个选项卡。这是如何在斯威夫特优雅地完成的。
以下内容不起作用:
self.tabBarController.selectedIndex = 0因为ThirdViewController类的UIViewController没有一个tabBarController。
布莱恩。
发布于 2014-10-22 22:41:59
用户Omkar在上面回答了正确的答案。我可以使用下面的viewDidAppear在ThirdViewController.swft中成功地切换第一个选项卡
override func viewDidAppear(animated: Bool) {
self.tabBarController?.selectedIndex = 0
}发布于 2015-11-02 03:49:58
我按照@Paolo Sangregorio的方式执行代码,如下所示
在应用程序委托中查找applicationDidBecomeActive函数并添加以下行
let tabBarController = self.window?.rootViewController as! UITabBarController
tabBarController.selectedIndex = 0发布于 2015-12-22 19:15:46
//Use viewWillAppear (instead of) viewDidAppear to prevent a screen flicker
var freshLaunch = true
override func viewWillAppear(animated: Bool) {
if freshLaunch == true {
freshLaunch = false
self.tabBarController.selectedIndex = 2
}
}https://stackoverflow.com/questions/26459037
复制相似问题