我想从父视图控制器访问容器视图控制器的标签。我尝试过以下方法:
prepareForSegue是父视图控制器中的一个函数。 ViewController2是容器视图控制器。 parin2是容器视图控制器中标签的名称。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
{
let vc1 = segue.destinationViewController as! ViewController2;
vc1.parin2.text=String("helo");
}
这会出现以下错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
答案 0 :(得分:1)
你没有确切地说哪条行导致错误,但我的猜测是它是select msg_id,msg_from,msg_to,msg_content,msg_status,msg_created_at,
(select user_name from users where user_id = msg_from ) user_name
from messages where msg_id in
(select max(msg_id) from messages )
and (msg_to = 35 or msg_from = 35)
(顺便说一句,请省略Swift中的';')。 let vc1 = segue.destinationViewController as! ViewController2
似乎失败,因为目标视图控制器不是as!
。要验证这一点,请在该行上设置断点,然后检查segue的ViewController2
属性以查看它是什么类型的视图控制器。如果它不 destinationViewController
,则问题出在您的故事板中。您要么得到一个您没想到的segue,要么故事板中的目的地类不是ViewController2
。
处理ViewController2
的更好模式如下:
prepareForSegue