![](/img/trans.png)
[英]How to segue (push) from ViewController to another ViewController embedded in NavigationController?
[英]TabBar embedded NavigationController bar disappears when segue to another ViewController
我有一个UITabBarController连接到3个UINavigationControllers。 其中每个都有一个UIViewController作为根视图控制器。 当我单击其中一个ViewControllers(VC1)中的按钮时,我希望它转到新的ViewController(VC2)。 很简单。
在运行期间,当segue发生并且VC2出现时,导航栏消失。
导航栏出现在storyBoard / interface构建器中,segue是类型:present(Push)。
VC1中的代码:
@IBAction func create_clicked(_ sender: Any) {
performSegue(withIdentifier: "segueIdentifier", sender: self)
}
了解如何实例化UITabBarController tabBar可能会有所帮助:
func login() {
let storyBoard = UIStoryBoard(name: "Main", bundle: nil)
let tabBar = storyBoard.instantiateViewController(withIdentifier: "tabBar")
window?.rootViewController = tabBar
}
请帮忙。
经过大量的实验,我们确定即使Interface Builder 说这是一个Show(Push)segue,即使我们在一个导航控制器中开始,它也表现为一个现在的模态segue。
所以我们使用Interface Builder中的弹出菜单,从Show(Push)到普通Push,改变了segue类型,即使这已被弃用 - 并且界面正常工作。
然后我们将其更改回Show(推送),界面继续正常工作。 问题解决了!
我怀疑故事板在某种程度上被破坏了。 显然,Interface Builder不应该对你说这是什么样的segue,但基本上,这就是它似乎一直在做的事情。
编辑问题是由于显示详细信息并将其更改为显示而引起的。 当你这样做时,它仍然是一个Show Detail segue,在这个上下文中表现为一个模态表示。 这是一个Xcode错误! 我报告了它,Apple现在说这将在Xcode 9.3中修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.