【问题标题】:SWIFT, ViewControllers and unwind segue to initial ViewControllerSWIFT、ViewControllers 和 unwind segue 到初始 ViewController
【发布时间】:2016-01-05 03:20:12
【问题描述】:

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

【问题讨论】:

    标签: ios swift segue unwind-segue


    【解决方案1】:

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

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

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

    然后,当你设置 unwind segue 时,control-从你的按钮拖动到第三个顶部的 Exit 图标ViewController 并从弹出窗口中选择returnToMain 操作。

    【讨论】:

    • 对不起,我是新手,我该如何继承 VC1?
    • 每个 viewController 都应该有自己的关联类。请参阅有关如何为 viewController 添加新类的问题。 stackoverflow.com/q/26962713/1630618。上面的答案假设您的 viewController 之间有很多共同点,并且您不想复制整个 viewController.swift 文件。上面的代码展示了如何继承另一个 viewController 并添加你需要的额外函数作为从另一个 viewController 返回的“着陆点”。
    • 非常感谢,我开始了解更多关于 UnwindSegue 的内容。
    • 我还有一个问题。我为滚动视图制作了超过 10,000 高度的东西。我已经达到了10,000,但是当我超过10,000时会出错,有没有办法超过10,000?我使用了许多超过 10,000 的应用程序,但是当我尝试创建超过 10,000 的东西时,它会给我一个错误,说“Interface Builder 不支持大于 10,000 x 10,000 的 UIView 大小。”这将对我有很大帮助,但我已经看到很多应用程序的滚动视图超过 10,000。
    • 您应该提出一个新问题,因为这与展开转场完全无关。如果此问题的答案解决了您的问题,请单击左侧的复选标记将其变为绿色来接受它。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-06-15
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多