如何从UICollectionViewCell中推送到导航控制器?

时间:2016-12-12 05:04:15

标签: objective-c swift uinavigationcontroller uinavigationbar segue

viewController1中,我有一个CollectionView,并使用以下代码为所选项目页面创建一个segue。

  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if(segue.identifier == "ToEventInfoSegue") {
            let destination = segue.destination as! ViewController2
            let cell = sender as! CollectionViewCell
            destination.eventInfo = cell.anEvent!
            destination.MainVC = self
        }
    } 

由于viewController2当前未嵌入导航控制器,因此在segue推送后,没有导航栏。

我的问题是为了获得导航栏,当VC2嵌入导航控制器时,如何实现segue?

更新

  1. 标签栏控制器 - >导航条控制器 - > VC1

  2. VC1 - > (目前没有导航栏控制器) - > VC2

  3. 更新2 重置segue后,我能够在StoryBoard中获得一个导航栏。但是,它似乎被视图覆盖了。导航栏未显示。 后退按钮确实显示。我认为标题在某种程度上位于图层的底部。层次结构看起来像这样。

    enter image description here

    enter image description here

    蓝色区域是导航栏的标题。但是,您可以看到它已被覆盖,并且在我运行应用程序时不会显示。 后退按钮确实显示

1 个答案:

答案 0 :(得分:0)

根据您的问题,我的理解是您在NavigationBar中需要DetailViewController,因此您必须将segue指定给CollectionViewCell DetailViewController,如下面的屏幕截图

我猜您的故事板流程如下: enter image description here

您需要将segue从Cell分配到DetailViewController

enter image description here enter image description here

通过这样做,您可以在详细信息屏幕中显示NavigationBar

希望这会帮助你解决问题。