我有一本字典,带有值,我称之为填充字段
if let userdata: NSDictionary = self.fbdata {
println(userdata["email"]) // print Optional(email@domain.com)
vc.email.text = userdata["email"] as? String ?? "" // raise a nil error
}
如代码中所示,userdata [“email”]存在并且有一个值,由println打印,无论如何在下一行我有一个nil可选异常引发(甚至默认的“”值也没有使用)
我不知道我在这里做错了什么
答案 0 :(得分:4)
它是文本字段的出口,但它似乎没有打开prepareForSegue函数
该评论揭示了您的误解。事情发生在订单中,我在这里讨论:https://stackoverflow.com/a/29552710/341994
因此,按照设计,prepareForSegue
在新视图控制器具有其视图或其出口之前发生。相反,它的出口连接的第一个时刻是它自己的viewDidLoad
,这是后来的。
然而,你真正的错误是更深层次的。一个视图控制器具有无业务设置或与另一个视图控制器的插座通话,从而操纵其接口。而是进行设置,以便目标视图控制器具有您可以设置的普通属性。在viewDidLoad
中,该视图控制器检查该属性,检索该值,并通过其出口设置其自己的接口。
所以,总结一下:prepareForSegue
是你初始化新视图控制器的机会。但这就是全部。然后,新的视图控制器将控制自己的视图 - 顾名思义!它将从自己的viewDidLoad
开始,然后再开始。