从Swift中的导航后退按钮展开segue

Rag*_*dra 17 iphone ios segue swift

我有一个设置屏幕,因为我有一个表格单元格.通过点击我进入另一个屏幕,用户可以选择一个选项,当按下后退按钮时我想要它回到上一个视图控制器.

图像第一视图控制器图像第二视图控制器

我可以放置一个自定义栏按钮项,但我想使用导航栏中的后退按钮返回到父视图控制器,而不是使用视图上的自定义按钮.

我似乎无法覆盖导航后退按钮将其指向我的展开segue操作,并且由于后退按钮没有出现在故事​​板上,我无法将绿色的"退出"按钮拖到它上面

是否可以使用后退按钮展开推送segue?

小智 5

这是我的解决方案,基于从 Blankarsch 到此 StackOverflow 问题的 Objective-C 代码:How to trap the back button event

将此代码放在要捕获来自以下位置的后退按钮调用的视图控制器中:

override func didMoveToParentViewController(parent: UIViewController?) {
    if (!(parent?.isEqual(self.parentViewController) ?? false)) {
        println("Back Button Pressed!")
    }
}
Run Code Online (Sandbox Code Playgroud)

在 if 块内,处理您需要传回的任何内容。您还需要返回调用视图控制器的引用,因为此时 parent 和 self.parentViewController 很可能都为零,因此您无法导航视图控制器树。

此外,您可能可以通过简单地检查父项是否为零而逃脱,因为我还没有发现按下后退按钮不会导致父项为零的情况。所以这样的事情更简洁一点:

override func didMoveToParentViewController(parent: UIViewController?) {
    if (parent == nil) {
        println("Back Button Pressed!")
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不能保证每次都有效。


zis*_*oft 0

我尝试了相同的操作,似乎您无法捕获标准后退按钮的操作,因此解决方案是使用自定义按钮并将其绑定到返回上一页的segue。