【问题标题】:iPhone tableview drop-down menuiPhone 表格视图下拉菜单
【发布时间】:2012-12-04 21:21:07
【问题描述】:

我有一个视图控制器,里面有一个表格视图和几个按钮。我想在这样的视图之上添加一个额外的表格视图(或者至少如果有人想成为我的朋友的话它会是什么样子:-)):

我不想只是将其添加为子视图(如 herehere)在此处输入链接描述,因为我不想检查我的 tableview 委托和数据源方法中正在使用哪个表视图.我宁愿使用单独的视图控制器。

我不想使用选择器,因为我需要在列表中的项目中显示一些信息。

使用相应的控制器创建视图没有问题,但是如何将它添加到当前视图之上,只是隐藏它的一部分?

谢谢!

【问题讨论】:

  • 为什么不想将它添加为子视图?
  • 我相信这是一个 UIPopoverController。如果需要,您可以添加一个表格视图作为弹出框的子视图。
  • UIPopoverController 仅在 iPad 上可用
  • 您可以在一个父视图控制器中拥有 2 个 UITableView。在每个数据源和委托方法中,只需使用if (tableView == mainTableView) {} else if (tableView == popoverTableView) {} 来确定每个要加载的内容。

标签: ios uitableview uiviewcontroller


【解决方案1】:

Apple 有一个处理此问题的 TableView 示例代码。 https://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html%23//apple_ref/doc/uid/DTS40010139 上面的 URL 是从 Apple 开发者库下载示例代码的链接。 希望能帮助到你。

【讨论】:

  • 虽然这很酷,但这并不是我所希望的。我已经在下面发布了我的最终解决方案。
【解决方案2】:

这对于您的应用程序来说可能过于简单,但我发现当我不得不做类似的事情时它是有效的。

您可以将此“下拉菜单”视图控制器的视图添加到整个应用程序的主 UIWindow 中。您也可以在窗口上添加 UIGestureRecognizer。如果点击在视图之外,使其消失并从视图层次结构中移除。

【讨论】:

    【解决方案3】:

    最初,我只是在我的 tableview 数据源中添加了逻辑,并委托方法在两个 tableview 之间进行 destingwish(如上面 Scott Bossak 所建议的那样。但是我已经切换到在故事板中构建我的两个视图并像往常一样添加它们的视图控制器。但是,为了呈现第二个表格视图,我将其实例化如下:

    SecondTableViewContriller *secondTVC = [self.storyboard instanciateViewControllerWithIdentifier:@"secondTVC"];
    

    然后将其添加为子视图控制器:

    [self addChildViewController: secondVC];
    [secondVC didMoveToParentViewController:self];
    

    然后我实现了一个协议,一旦选择了一行,就将信息传递回父视图控制器。

    【讨论】:

      猜你喜欢
      • 2014-06-08
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 2022-01-08
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多