我尝试用我的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/