【问题标题】:thread 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0) when button is clicked单击按钮时线程 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0)
【发布时间】:2016-01-19 19:34:59
【问题描述】:

当您在我的应用程序中按下按钮时,您应该被转移到另一个视图控制器,并且第二个视图控制器中的标签应该设置为新文本,但它只适用于转移到第二个视图控制器而不是当我添加代码,以便标签文本应更改。然后弹出这个错误:thread 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0)

是的,两个视图控制器都设置了相同的视图控制器。

如果你知道答案,请在这篇文章中发表评论:)

@IBAction func done(sender: UIButton) {                
 let countInMeters = count * 6
    metersTest.text = "apr \(countInMeters) meters"
}

【问题讨论】:

  • 什么是count?是metersTest 肯定不是nil
  • 另一种可能是 ibaction 已经“变红”,即您的按钮已与此操作断开连接。尝试从头开始重新初始化这些连接(ctrl-drag)。
  • 在您提出下一个问题之前,您可能需要查看此内容:stackoverflow.com/help/how-to-ask

标签: ios swift uiviewcontroller viewcontroller


【解决方案1】:

从您问题的措辞看来,您正试图在属于原始视图控制器的控件代码中修改目标视图控制器上的控件。

这永远不会起作用,因为当您在原始视图控制器的按钮代码中时。您的 meterTest.text 可能是原始控制器的成员,并且可能没有连接到任何东西。它当然不能连接到完全不同的对象的目标控制器。

如果您需要在视图控制器之间传输数据,您可以在您可以访问原始控制器和目标控制器时截取它们之间的转换。例如,如果您在原始视图控制器中覆盖 func prepareForSegue(_ segue: UIStoryboardSegue, sender sender: AnyObject?),则可以在此时将数据分配给目标控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2015-10-19
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多