【问题标题】:NavigationBar not showing on TableviewController in swiftNavigationBar 没有快速显示在 TableviewController 上
【发布时间】:2016-03-06 10:28:09
【问题描述】:

我的项目中有一个 CollectionView 正在运行,并且 collectionViewController 使用自定义 segue 连接到另一个 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 嵌入到 NewTableView 结果保持不变。

  • 我尝试使用自定义导航按钮操作方法展开 segue 方法。因此我将导航栏项目和按钮插入视图并且方法有效,但是当按下导航栏按钮时它会奇怪地工作,它将我带到我的主要收藏视图控制器就是我的内容。但是我在集合视图 rowindex 项目名称中出现了另一个后退按钮。当我按下按钮时,它带我回到 NewTableView,就像循环一样。

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

我想知道有没有办法通过后退按钮行为以编程方式放置导航...

提前致谢.....

【问题讨论】:

    标签: swift


    【解决方案1】:

    您必须实例化导航控制器,而不是情节提要中的实际视图控制器。因此,不要实例化NewTableView(您希望嵌入到导航控制器中的视图控制器),您应该向您的UINavigationController 添加一个标识符,以便实例化它而不是视图控制器本身。

    想象一下你重用了不需要导航控制器作为根的NewTableView 控制器,iOS 怎么会意识到这一点?因此,将标识符添加到您的主机 UINavigationController 并实例化它。导航控制器对rootViewController 有根依赖项,默认情况下会显示,因此您只需显示UINavigationControllerNewTableView 控制器将根据它与导航控制器的依赖关系显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多