我差不多完成了一个项目,并且正在研究最后几个UI扭结。我的应用程序使用标签栏进行导航,出于审美目的,我希望应用程序在最后一个选项卡(用户配置文件)而不是第一个选项卡上打开。我知道我可以重新排序Interface Builder中的选项卡,但是标签栏看起来很奇怪,首先是配置文件选项卡,而其他地方的主页选项卡。如何将配置文件选项卡保留为第5个选项卡,但默认情况下在该选项卡上打开应用程序?
答案 0 :(得分:24)
有一种很好的方法可以直接从标签栏控制器上的界面构建器单击标识检查器,然后设置用户定义的运行时属性< /强>
在这种情况下,标签栏控件的每个索引都像一个基于0的数组一样被索引。所以最左边是0,右边是1,然后是2等......
所以在我的情况下,我想要&#39;任务&#39;首先选择,因此您将selectedIndex设置为Number&value&#39; 1&#39;。请参阅我附带的图片。
答案 1 :(得分:11)
只需设置tabBarController的selectedIndex即可。沿着这些方向的东西。
var freshLaunch = true
override func viewWillAppear(animated: Bool) {
if freshLaunch == true {
freshLaunch = false
self.tabBarController.selectedIndex = 4 // 5th tab
}
}
答案 2 :(得分:4)
如果您使用的是UISegue
中的UIStoryBoard
,则可以在执行UIViewController
的{{1}}中使用它
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
}
}
中。
答案 3 :(得分:2)
在第一项视图中,控制器写入
tabBarController?.selectedIndex = 2//required value