【问题标题】:Unwind segue - only instance methods can be declared @IBAction; and button does not connect to ExitUnwind segue - 只有实例方法可以声明为@IBAction;和按钮不连接到退出
【发布时间】:2016-05-17 13:47:06
【问题描述】:

我遇到了与this question 相同的问题,但这些解决方案不起作用。当前运行 xcode 7.3.1。

我有一个拆分视图控制器应用程序,它以模态方式呈现一个保存记录视图控制器。在保存 VC 上,有一个保存和取消按钮,应该(在这两种情况下)返回到主视图。

在主视图控制器中,我有以下代码:

@IBAction func unwindToSegue (segue: UIStoryboardSegue) { }

但是,有一个编译器错误:只能声明实例方法@IBAction。有删除@IBAction 的建议,但是虽然这消除了错误,但我无法在子 VC 中连接到此操作。

无论是否在 unwind 方法中使用 @IBAction,我都会遇到引用问题中描述的相同问题 - 将一条线从我的 UIButton 拖到 Storyboard IB 中的退出按钮,不显示任何要连接的操作。

【问题讨论】:

  • 您能否发布更多代码,例如您如何在课堂上定义 unwindToSegue 方法
  • 要补充@Yuvrajsinh 所说的如何,您还可以显示在哪里(即在哪个 VC 中)?
  • 目前还没有该方法的实际代码。在一个虚拟(超级简单的项目)中,我只有一个打印语句来显示它被调用。这工作正常,但在我的实际项目中,必须有一个设置或不允许定义完全相同的@IBAction 然后在 IB 中找到的东西。
  • Master VC 里面有 IBAction。 Master VC 嵌入在带有条形按钮的导航控制器中,该按钮以模态方式呈现新的记录 VC。新的记录 VC 中有一个保存按钮,我想将它放回到主 VC。但是,保存按钮的功能与引用问题中显示的完全一样——画一条线退出,但退出不允许选择;如果右键单击显示没有呈现segues。

标签: ios swift ibaction unwind-segue


【解决方案1】:

你需要把函数放在 UIViewController 里面。

class MasterViewController: UIViewController {
    @IBAction func unwindToSegue(segue: UIStoryboardSegue) { }
}

【讨论】:

  • 我将这个 IBAction 函数嵌套在另一个函数中,虽然这对于其他函数是可以的,但对于 IBAction 来说似乎不行。根据您的回答,它再次开始工作。回归基础总是好的。谢谢。
【解决方案2】:

当我在我的代码中有一个额外的括号时,我得到了这个错误......它位于 IBAction 方法之前,所以它基本上切断了它在 UIViewController 类中,正如 Tomas 所建议的那样。因此,请检查所有括号是否正确。

【讨论】:

    【解决方案3】:

    @IBAction 在语法方面非常挑剔,包括字符串之间的空格。例如,nameA.txt ="" 是不可接受的。 你需要有相等的空格与字符串连续,例如 nameA.text = ""

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 2012-09-29
      • 2021-09-20
      • 1970-01-01
      相关资源
      最近更新 更多