[英]How do I set the default tab for tab bar controller in 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)
}
}
但是,在打開首選項之前,我想將活動選項卡設置回第一個選項卡。 如何在Swift中優雅地完成這項工作。
以下不起作用:
self.tabBarController.selectedIndex = 0
由於UIViewController
的ThirdViewController類的沒有一個tabBarController
。
布萊恩。
用戶Omkar在上面回答了正確答案。 我可以使用ThirdViewController.swft中的以下viewDidAppear成功切換第一個選項卡
override func viewDidAppear(animated: Bool) {
self.tabBarController?.selectedIndex = 0
}
我按照@Paolo Sangregorio方式執行以下代碼
在appdelegate中找到applicationDidBecomeActive
函數並添加這一行
let tabBarController = self.window?.rootViewController as! UITabBarController
tabBarController.selectedIndex = 0
//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
}
}
如果它是標簽欄應用程序,您應該在appdelegate中使用tabbarcontroller變量。 您可以通過在appdelegate上設置該變量的selectedIndex來設置當前選項卡。
如果您使用Tab欄項目
斯威夫特3
@IBOutlet weak var Tabbar:UITabBar!
override func viewDidLoad(){
...
...
...
tabBar.selectedItem = tabBar.items![newIndex]
}
如果你想讓他毫不拖延地來。 喲可以在viewDidLoad()中使用
override open func viewDidLoad() {
super.viewDidLoad()
// Set Default tab
self.selectedIndex = 1
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.