【问题标题】:Ambiguous use of 'dismiss()' on UIButton when converting to swift 3.0转换为 swift 3.0 时在 UIButton 上模糊使用“dismiss()”
【发布时间】:2017-03-19 13:46:45
【问题描述】:

我在 swift 2.0 中以编程方式创建了一个名为 noBtn 的 UIButton,这表示取消了 UIViewController。当用户单击按钮时,包含该按钮的视图控制器将关闭。当我转换为 swift 3.0 时,我不断收到此错误:

  • “dismiss()”使用不明确

我尝试向dismiss() 添加参数,但没有成功。这是我没有参数的原始代码。

noBtn.addTarget(self, action: #selector(SetUpNameViewController.dismiss), for: UIControlEvents.touchUpInside)

【问题讨论】:

  • 使用dismiss 方法更新您的问题。
  • dismiss 方法是 Swift 库的一部分
  • 它是一种内置方法,它在 swift 2.0 中有效,但在 swift 3.0 中却没有
  • 没有称为dismiss 的内置方法。这就是错误消息告诉您的内容。
  • 好吧,然后它在 swift 2.0 中,他们在 swift 3.0 中取出了它

标签: ios swift uibutton swift2


【解决方案1】:

像这样重写。首先,给同一个类一个dismiss方法:

func dismiss() {
    self.dismiss(animated:true)
}

其次,将您的selector 更改为#selector(dismiss)

现在,您的选择器将调用您的 dismiss 函数,该函数将调用 dismiss(animated:completion:),这就是您要执行的操作。

【讨论】:

    【解决方案2】:

    斯威夫特 2

    dismissViewControllerAnimated(true, completion: nil)
    

    斯威夫特 3

    dismiss(animated: true, completion: nil)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      相关资源
      最近更新 更多