Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swift EXC_BREAKPOINT when assigning viewcontroller to variable in prepareForSegue

Tags:

ios

swift

Im getting an error when trying to perform a variable assignment with my destinationViewController.

The error message is this: Thread 1: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)

This in my prepareForSegue function.

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if segue.identifier == "LoginSegue"{

        let vc = segue.destinationViewController as LoggedInViewController
        vc.email = emailTextfield.text

    }
}

In the other file it looks like this.

var email: String?

which is at the top. Then this:

override func viewDidLoad() {
    super.viewDidLoad()

    println("Email is:")
    println(email)
    println("Email was")
}

But i never come into the second file.

It is the line let vc = segue.destinationViewController as LoggedInViewController that is marked with error.

Both swift files are connected to navigation controllers.

I dont know what more you need, but I will of course post all code you need to understand!

Thanks!

like image 327
Simon Guldstrand Avatar asked Jul 03 '14 12:07

Simon Guldstrand


2 Answers

In your case destination controller is navigation controller not your LoggedInViewController , So segue.destinationViewController as LoggedInViewController is an error , therefore it is crashing.

Try like this

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if segue.identifier == "LoginSegue"{
            let navigationController = segue.destinationViewController as UINavigationController

        let vc = navigationController.topViewController as LoggedInViewController
        vc.email = emailTextfield.text

    }
}
like image 143
Yatheesha Avatar answered Nov 04 '22 15:11

Yatheesha


In case somebody comes here because it's the first hit on EXC_BREAKPOINT:

For me this very telling exception was thrown because of a fatal error: unexpectedly found nil while unwrapping an Optional value that happened because an IBOutlet was used before it was initialized.

like image 31
TheEye Avatar answered Nov 04 '22 14:11

TheEye