我有以下情况:
在我的TabBarController中,我有多个标签,一切正常,但是:
一个特定标签的目的地是动态的。
如果某个条件匹配,则此特定选项卡应打开NavigationViewController。
如果其他条件匹配,则此特定选项卡应打开ViewController。
有没有内置的解决方案?
如何在运行时修改选项卡的目标?
问候和感谢
答案 0 :(得分:0)
很久很久以前,在遥远的星系...... Segues甚至不存在。所以是的
UITabBarController有一个setter,您可以在其中传递您希望它处理的新视图控制器。您将无法通过这种方式决定点击时的显示,但是您可以在条件发生变化时更改控制器。
init(contentsOf url: URL) throws
但是,如果你需要决定选项卡是否被点击...你可以让你的标签控制器指向一个基本上是空的控制器,并使用该控制器的视图控制器包含来获得2个选项,并且其中一个隐藏。非常可靠的故事板,支持代码很少。我想我更喜欢这个选项。
答案 1 :(得分:0)
如果您希望继续使用Segues,那么您可以根据某些condition
变量的状态执行特定的Segue,如下所示:
func presentAppropriateView() {
if condition {
performSegue(withIdentifier: "ToNavBar", sender: self)
} else {
performSegue(withIdentifier: "ToVC", sender: self)
}
}
答案 2 :(得分:0)
在运行时写一个你想要在某些条件下执行的委托方法并调用
[self.tabBarController setSelectedIndex:0];
哪里可以选择索引