NavigationBar没有在swift

时间:2016-03-06 01:54:59

标签: swift

我在项目中运行了CollectionView,并使用自定义segue将collectionViewController连接到另一个tableview,如下所示。

    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    selectedMenuItem = indexPath.row

    //Present new view controller
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)

    var destViewController : UINavigationController


    switch (indexPath.row) {
    case 0:
        destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("NewTableView") as UINavigationController
        break
    default:
        destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("NewTableView") as UINavigationController
        break
    }
    self.presentViewController(destViewController, animated: true, completion: nil)


}

上面的代码成功填充了我的NewTableview,但tableview完全没有导航栏。

到目前为止我的尝试如下......

  • 我将新的navigationController嵌入到collectionView结果中保持不变。

  • 我将新的navigationController嵌入到NewT​​ableView结果中保持不变。

  • 我尝试使用自定义导航按钮操作方法解开segue方法。所以我将导航栏项目和按钮插入到视图和方法工作,但当导航栏按钮按下它时,它工作扼杀它带我到我的主要集合查看控制器,这是什么我what.but我有另一个后退按钮出现在集合视图rowindex项目名称上。当我按下按钮,它带我回到NewT​​ableView它像循环通过。

我不知道我错过了什么(任何委托方法)。我注意到从底部加载动画的newTableView数据......

我想知道有没有办法以编程方式使用后退按钮行为...

先谢谢.....

1 个答案:

答案 0 :(得分:1)

您必须实例化导航控制器,而不是故事板中的实际视图控制器。因此,不是实例化NewTableView(您想要嵌入在导航控制器中的视图控制器),而是应该为UINavigationController添加一个标识符,以便实例化它而不是视图控制器本身。

想象一下,你重用了不需要导航控制器作为其根的NewTableView控制器,iOS会如何意识到这一点?因此,为您的托管UINavigationController添加一个标识符并实例化该标识符。导航控制器对rootViewController具有根依赖性,默认情况下会显示,因此您只需显示UINavigationControllerNewTableView控制器将根据其具有的依赖关系显示使用导航控制器。