LoggedInViewController

LoggedInViewController

我尝试用我的destinationViewController进行变量分配时遇到错误。

错误消息是这样的:
线程1:EXC_BREAKPOINT(代码= EXC_I386_BPT,子代码= 0x0)

这在我的prepareForSegue函数中。

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

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

    }
}

在另一个文件中,它看起来像这样。
var email: String?

在顶部。
然后这样:
override func viewDidLoad() {
    super.viewDidLoad()

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

但是我从来没有进入第二个文件。

vc = segue.destinationViewController作为LoggedInViewController的行已标记为错误。

两个swift文件都连接到导航 Controller 。

我不知道您还需要什么,但是我当然会发布您需要了解的所有代码!

谢谢!

最佳答案

在您的情况下,目标 Controller 是导航 Controller ,而不是 LoggedInViewController ,因此segue.destinationViewController as LoggedInViewController是一个错误,因此崩溃了。

这样尝试

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

    }
}

关于ios - 在prepareForSegue中将viewcontroller分配给变量时,Swift EXC_BREAKPOINT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24554361/

10-09 02:45