线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP)错误

时间:2017-08-23 05:46:58

标签: ios swift xcode

我是新来的Xcode和idk为什么我有这个错误,有人可以帮我这个吗?非常感激。这基本上是为了让用户输入他们给出的验证码,它将根据特定代码显示一条消息。

VerificationController

import UIKit

class VerificationController: UIViewController {

    @IBOutlet var verification: UITextField!
    @IBAction func enter(_ sender: Any) {

            if verification.text != ""
            {
                if verification.text == "123"
                {
                    performSegue(withIdentifier: "segue", sender: self)

                }
                else if verification.text == "234"
                {
                    performSegue(withIdentifier: "segue", sender: self)
                }
            }
        }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

SecondController

import UIKit

class SecondViewController: UIViewController {

    @IBOutlet var label: UILabel!

    var myString1 = "Hello 123"
    var myString2 = "Hello 234"



    override func viewDidLoad() {
        super.viewDidLoad()
        if (VerificationController().verification.text! == "123")
            {   
                 label.text = myString1
            }
        else if (VerificationController().verification.text! == "234")
            {
                 label.text = myString2
            }


        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }  
}

[IMAGE OF ERROR]

1 个答案:

答案 0 :(得分:2)

您需要将验证文本传递给 prepare(forSegue)方法中的SecondViewController并访问相同的内容:

VerificationController

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "segue" {
        let secondVC = segue.destination as! SecondViewController
        secondVC.verificationText =  verification.text
    }
}

然后在SecondViewController

 var verificationText:String?

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    if (verificationText == "123")
    {
        label.text = myString1
    }
    else if (verificationText == "234")
    {
        label.text = myString1
    }

}

希望它有所帮助!