Swift 2 中的 segue 没有后退按钮

Posted

技术标签:

【中文标题】Swift 2 中的 segue 没有后退按钮【英文标题】:No back button on segue in Swift 2 【发布时间】:2015-06-21 04:24:02 【问题描述】:

我刚刚将我的项目移植到 Swift 2,一切都运行良好 - 除了即使是最简单的 segue 也没有后退按钮。这是我正在使用的准备 segue 功能:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
    if segue.identifier == "showExercise" 
        if let nav = segue.destinationViewController as? UINavigationController 
            if let exercisesController = nav.topViewController as? ExercisesController 
                let cell = sender as! WorkoutCell
                if let workout = cell.name!.text 
                    exercisesController.exercises = Workouts[workout]!
                    exercisesController.navigationItem.title = workout
                
            
        
    

以前,父级 segue 的后退按钮用于自动填充。现在,我得到的只是子导航 vc 中的标题

【问题讨论】:

【参考方案1】:

您使用的是 show 还是 show detail segue?好像您正在使用模态转场。 show 或 show segue 的目标视图控制器通常是第二个视图控制器本身,而不是嵌入另一个 UINavigationController

如果您的显示转场的目标视图控制器确实是UINavigationController,则新导航控制器的导航栏设置可能会覆盖旧的(源视图控制器的导航控制器)。尝试不要将目标视图控制器嵌入到另一个 UINavigationController

【讨论】:

这似乎是问题所在!从它自己的UINavigationController 中删除segue.destinationViewController 有效。干杯! FWIW 我使用的是Show (e.g. Push) @cadlac 你能发布作为答案的代码吗?我不明白你的修复是如何在不破坏其他代码的情况下工作的。

以上是关于Swift 2 中的 segue 没有后退按钮的主要内容,如果未能解决你的问题,请参考以下文章

没有显示 segue 显示的快速后退按钮

使用后退按钮展开 segue 时执行代码

Swift - Segue 没有被传递正确的数据

UINavigationController上的swift菜单项在打开segue时消失[关闭]

xcode swift - 无法编辑后退按钮

在swift 4下更改导航控制器后退按钮的字体