故事板 segue 目的地不是预期类
Posted
技术标签:
【中文标题】故事板 segue 目的地不是预期类【英文标题】:Storyboard segue destination is not intended class 【发布时间】:2019-05-20 21:58:38 【问题描述】:我有一个将 VC1 连接到 VC2 的故事板转场。标识符是“showDetail”,目标 ViewController 类是 YTimeCalendarDetailViewController。当我在 prepareForSegue 中逐步执行以下操作时,如果 let vc = segue.destination as? YTimeCalendarDetailViewController:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
if segue.identifier == DETAIL_SEGUE_ID,
let vc = segue.destination as? YTimeCalendarDetailViewController,
let selectedDate = selectedDate
vc.employeeRecord = selectedJob.employeeRecord
vc.punches = timesheet[selectedDate]?.punches ?? []
vc.selectedDate = selectedDate
我已经检查了我的 segue 和 viewControllers 三倍以确保它们指向正确的东西,从正确的类继承等。当我在 lldb 中打印出 segue.destination 时,它告诉我有一个 UIViewController ,但我不知道如何找到VC的确切类。这是容器视图的问题吗? VC2,包含 3 个容器视图,我打算通过分段控制显示/隐藏它们。但我对此表示怀疑......我只是没有想法。
【问题讨论】:
【参考方案1】:需要给Ib中的vc分配类名
let vc = segue.destination as? YTimeCalendarDetailViewController,
从打印中可以看出 UIViewController:> ,选择IB中的vc
为了方便调试,请始终使用as!
而不是as?
let vc = segue.destination as! YTimeCalendarDetailViewController
【讨论】:
我愿意!它在代码中。或者你能帮我理解你想说的更多吗? 你说的“vc in lb”是什么意思? IB is interface builder将Ib/stroyboard中目标vc的类名设置为YTimeCalendarDetailViewController
以上是关于故事板 segue 目的地不是预期类的主要内容,如果未能解决你的问题,请参考以下文章
“Unwind Segue”可以在通过故事板参考连接的两个故事板之间工作吗?