【问题标题】:Adding a TAB BAR to a uitableviewcontroller [closed]将 TAB BAR 添加到 uitableviewcontroller [关闭]
【发布时间】:2014-01-17 15:57:10
【问题描述】:

我有一个使用情节提要设计的应用。我正在尝试在我有 uitableviewcontroller 的视图底部添加一个标签栏,问题是它会自动将它拖到第一个单元格下。

我打算在标签栏上添加 4 个按钮,每个按钮在此视图内执行特定操作(每个按钮都将使用来自网络的不同数据重新加载表格)。

【问题讨论】:

  • 听起来UIToolBar 最适合您的需求。标签栏用于导航。不执行操作。
  • 创建MCVE解释问题:stackoverflow.com/help/mcve

标签: ios storyboard uitableview uitabbar


【解决方案1】:

根据您的描述,UIToolBar 将是您的最佳选择。您可以将它放在视图控制器的底部,并为每个更新数据的按钮创建 IBAction。
如果您打算使用 UITabBar,那么您需要重新考虑您的故事板布局。您将有一个 UITabBarController 作为初始视图,它将您的 TableViewController 子类作为根视图。您可以创建四个单独的 TableViewController 子类(每个子类用于不同的数据集),也可以有一个子类从 UITabBarController 接收关于要加载的数据集的加载消息。
如果您决定使用工具栏,则无法将其添加到默认 Interface Builder TableViewController 的底部。按照以下步骤将工具栏添加到 TableViewController 子类的底部:

  1. 在情节提要中插入UIViewController(这将替换您的UITableViewController
  2. 将新 UIViewController 的类设置为 UITableViewController 子类(身份检查器)
  3. 在新的UIViewController 底部插入UIToolbar,并根据需要添加按钮、IBOutlets 和IBAction。
  4. UITableView 添加到您的UIViewController 以占用剩余的屏幕空间。
  5. 在连接检查器中,将 UITableView 的数据源和委托连接到 UITableViewController 子类
  6. 根据需要添加和配置尽可能多的原型 TableViewCell。

这应该是在 TableViewController 中获取工具栏所需的全部内容。它需要在 Interface Builder 中进行额外配置,但这是唯一无需编写额外代码的方法。

【讨论】:

  • 问题是我不认为我需要一个 tabbarcontroller,我想要的只是屏幕底部的 4 个按钮,每个按钮都连接到一个 IBAction,它将重置表数据。问题是无论我向 tableviewcontroller 添加什么,它都会将它附加到第一个单元格的底部。
  • 我添加了在您的视图中获取工具栏的步骤。我是凭记忆写的,所以我可能错过了一步。如果我这样做了,请告诉我,否则请将其标记为正确答案。祝你好运!
  • 我收到以下错误:[UITableViewController loadView] 加载了“Yfd-OW-gAN-view-aED-XN-o5u”笔尖,但没有获得 UITableView。'
【解决方案2】:

选择你的控制器然后菜单Editor > Embed In > Tab Bar Controller

编辑:胡我没有完全阅读你的问题。其他答案更正确。

【讨论】:

    【解决方案3】:

    我打算在标签栏上添加 4 个按钮,每个按钮执行特定的操作 在此视图内的操作(​​每个都将重新加载表 来自网络的不同数据)。

    根据您的最后一句话,我判断您既不需要标签栏也不需要 tableviewcontroller。你只需要一个简单的视图控制器,在顶部有一个Tableview 工具栏 在底部时间>。工具栏将有一个 段控件 与 4 个部分 - 将充当四个按钮。在每个部分点击,您可以捕获值更改的事件,并根据选定的索引将新数据加载到表中。

    这是一种简单的做事方式。不要使用标签栏让你的生活变得复杂:)

    【讨论】:

      【解决方案4】:

      好的,这就是我最终所做的。 我在 user2105505 提到的方法中遇到错误(标记为正确),所以我决定创建一个 UIVIEWCONTROLLER 并将我的 tableviewcontroller 添加为该 uiviwewcontroller 的子项(通过导入 uitableviewcontroller 类,创建类的实例并实例化self.storyboard) ,然后将工具栏添加到 uiviewcontroler。

      然后只需将 tableview 添加为 uiviewcontroller view 的子视图,但您需要记住做两件事。

      实例化您的工具栏,并修改 tableview 的大小,使其适合并显示工具栏。(也许使用 bringToFront 作为替代?对我不起作用,必须手动指定大小)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-17
        • 1970-01-01
        • 2010-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-22
        相关资源
        最近更新 更多