目前,我VC1
的{{1}}类型UITableViewController
已嵌入UINavigationController
。当用户选择一个单元格时,它会执行push
segue到VC2
类型UITableViewController
。这很好,因为导航栏仍然存在。
然而,在VC1
中,导航栏中有一个UIBarButtonItem
,在点按时,也会切换到VC2
并执行不同的操作,但它会使用所有相同的菜单布局。
使用UIBarButtonItem
转到VC2
,我喜欢执行modal
segue来区分这两个行为。
我知道modal
segues包含整个屏幕,任何顶部栏都会被删除。
我关注了这个问题:Modal segue, navigation bar dissapears
提供的answers之一显示了如何在UINavigationController
中嵌入prepareForSegue
,因此我按照它进行了实施:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "AddSegue"
{
let navigationController: UINavigationController = segue.destination as! UINavigationController
var addVC: VC2 = VC2()
addVC = navigationController.viewControllers[0] as! VC2
}
}
然而,我收到错误:
无法转换类型' VC2'至 '的UINavigationController'
如何在UINavigationController
中正确嵌入prepareForSegue
,因为我需要在不同的视图控制器之间传递数据。
这是我的故事板: