ios - SWIFT、ViewController 和展开转场到初始 ViewController

标签 ios swift segue unwind-segue

我在使用 Unwind Segue 时遇到问题。我有 3 个 ViewController,它们都在名为 ViewController.swift 的类下。我试图获取最后一个 ViewController,这是第三个,只需点击一个按钮即可进入开始 ViewController,但我似乎无法获取它。在提交这个问题之前我尝试进行研究但找不到。如果您需要更多信息,请告诉我。

最佳答案

您有 VC1 -> VC2 -> VC3,并且希望从 VC3 直接展开到 VC1。为此,您需要在 VC1 中定义但在 VC2 中未定义的 @IBAction。目前这是不可能的,因为所有 ViewController 都在 ViewController.swift 中使用相同的类定义。

解决此问题的一种方法是在不复制 ViewController.swift 中的所有代码的情况下,子类化 ViewController 并仅添加 VC1 特有的函数。然后在 Storyboard 中,选择第一个 ViewController 并在Identity Inspector中将自定义类设置为MainViewController

class MainViewController: ViewController {
    @IBAction func returnToMain(segue: UIStoryboardSegue) {
        print("back in the MainViewController")
    }
}

然后,当您设置展开转场时,控制 - 从按钮拖动到第三个顶部的退出图标ViewController 并从弹出窗口中选择 returnToMain 操作。

关于ios - SWIFT、ViewController 和展开转场到初始 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34603672/

相关文章:

swift - 警报消息无法出现

swift - 无法从 View Controller 转到 Storyboard 引用?

objective-c - 使用 prepareForSegue 作为按钮

iOS - MPMoviePlayerController - 控制大小

ios - 由于额外的高度限制,自动布局崩溃

ios - 当 viewController 转到另一个 tableViewController 时,我如何保存字符串的值

ios - Swift 在两个 View Controller 上使用后退按钮

cocoa-touch - 在屏幕上向后滚动时,UITableViewCell 会被重新选择

ios - 使用 Swift 将录音上传到 Firebase

ios - RxSwift rx_text 双向绑定(bind)崩溃