swift 中使用 Segue 时如何显示标签栏

How to show the tab bar when using Segue back in swift

我在第一个视图中有一个Tab栏,总共有两个视图。

但是,当我使用 Segue 从第一个视图移动到第二个视图然后返回到第一个视图时,第一个视图的标签栏消失了。

从第二个视图return到第一个视图时,Tab bar不消失的方法是什么?(不使用unwind)

不要在此处使用 unwind segue。当您需要回到之前的 ViewController 时,只需 dismiss 您当前的 ViewController

dismiss(animated: true, completion: nil) /* call this in second VC */

我建议您阅读 documentation 以了解如何组合视图控制器接口。无论如何,如果你需要在流程上弹出到上一个视图控制器,你需要使用

navController.popViewController(animated: true)

但是,如果需要在 NavigationViewController 的 View Controllers 队列中弹出特定 ViewController,则需要使用

 navController.popToViewController(ViewController, animated: true)

从您使用 NavigationController 的那一刻起,一个 return 按钮将自动出现在 UINavigationBar 上,因此您不必担心。除非你想自定义视图控制器队列中的后退按钮,否则在这种情况下使用上述方法。

用于第 1 页。页面加载后显示 tabBarController

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.tabBarController?.tabBar.hidden = true
} 

如果点击事件被触发,隐藏tabBarController

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if (segue.identifier == "twoSegue") {
        self.tabBarController?.tabBar.hidden = false
    }
}