目前我有一个VC1类型的UITableViewController嵌入到UINavigationController中。当用户选择一个单元格时,它也会执行push类型的VC2segue toUITableViewControllersegue toVC1。这很好,因为导航栏仍然存在。
但是在UIBarButtonItem中,导航栏中有一个VC2,点击后,它也会切换到UIBarButtonItem,执行不同的操作,但它使用的菜单布局完全相同。
使用VC2分段到modal,我喜欢执行modal分段来区分这两个操作。
我知道UINavigationController段包含了整个屏幕,任何顶部的条都将被删除。
我回答了这个问题:Modal segue, navigation bar dissapears
其中一个answers演示了如何在prepareForSegue中嵌入UINavigationController,因此我遵循它并实现了:

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'
如何在prepareForSegue中正确嵌入,因为我需要在不同的视图控制器之间传递数据。
这是我的故事板:
ios - 如何在prepareForSegue中嵌入UINavigationController?-LMLPHP

最佳答案

与之相交的是您的VC2,而不是导航控制器。您需要更新"AddSegue"段以指向导航控制器,然后将您的VC2链接为导航控制器的根视图控制器。
如果你张贴你的故事板,我可以给你更多的细节如何做到这一点。
编辑:这里是你应该如何设置你的故事板。可能会有点奇怪,因为VC2有两个父导航控制器,但应该没问题。
ios - 如何在prepareForSegue中嵌入UINavigationController?-LMLPHP

关于ios - 如何在prepareForSegue中嵌入UINavigationController?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43152377/

10-12 14:45