对不起,如果这个特殊问题被问到,我跟着其他线程的答案,但似乎没有一个工作,但我刚开始学习Swift所以这对我来说都是新的。
因此,我在两个视图控制器中有一个文本字段,我希望第三个视图控件在我按下按钮时根据其他两个控制器的输入显示结果。
我跟着this tutorial并放置了我之前说过的文字字段,标签和按钮。 我在ViewControl.swift中放置了我的代码(您可以在下面看到)。
问题在于,当我尝试运行它时,在最后两行中出现“Thread 1:EXC_BAD_INSTRUCTION(code = EXC_I386_INVOP,subcode = 0x0)”错误。
class ViewController: UIViewController {
var a: String = ""
var b: String = ""
@IBOutlet weak var aTextField: UITextField!
@IBOutlet weak var bTextField: UITextField!
@IBOutlet weak var calculateButton: UIButton!
@IBOutlet weak var resultLabel: UILabel!
@IBAction func calculateButtonPressed(_ sender: UIButton) {
let a = aTextField.text!;
let b = bTextField.text!;
我认为错误来自于视图之间没有传递的数据(因为在我将所有内容放在同一个视图中并且工作正常之前),但由于我只有一个ViewController.swift文件,我无法弄清楚如何使用Segue。
答案 0 :(得分:0)
不要多次声明相同的变量。在let
之前移除a
& b
。您已经宣布a
&全局b
,然后尝试在IBAction
class ViewController: UIViewController {
var a: String = ""
var b: String = ""
@IBOutlet weak var aTextField: UITextField!
@IBOutlet weak var bTextField: UITextField!
@IBOutlet weak var calculateButton: UIButton!
@IBOutlet weak var resultLabel: UILabel!
@IBAction func calculateButtonPressed(_ sender: UIButton) {
a = aTextField.text!;
b = bTextField.text!;
答案 1 :(得分:0)
@IBAction func calculateButtonPressed(_ sender: UIButton) { self.a = aTextField.text! self.b = bTextField.text! }