将 TAB BAR 添加到 uitableviewcontroller [关闭]
Posted
技术标签:
【中文标题】将 TAB BAR 添加到 uitableviewcontroller [关闭]【英文标题】:Adding a TAB BAR to a uitableviewcontroller [closed] 【发布时间】:2014-01-17 15:57:10 【问题描述】:我有一个使用情节提要设计的应用。我正在尝试在我有 uitableviewcontroller 的视图底部添加一个标签栏,问题是它会自动将它拖到第一个单元格下。
我打算在标签栏上添加 4 个按钮,每个按钮在此视图内执行特定操作(每个按钮都将使用来自网络的不同数据重新加载表格)。
【问题讨论】:
听起来UIToolBar
最适合您的需求。标签栏用于导航。不执行操作。
创建MCVE解释问题:***.com/help/mcve
【参考方案1】:
根据您的描述,UIToolBar 将是您的最佳选择。您可以将它放在视图控制器的底部,并为每个更新数据的按钮创建 IBAction。 如果您打算使用 UITabBar,那么您需要重新考虑您的故事板布局。您将有一个 UITabBarController 作为初始视图,它将您的 TableViewController 子类作为根视图。您可以创建四个单独的 TableViewController 子类(每个子类用于不同的数据集),也可以有一个子类从 UITabBarController 接收关于要加载的数据集的加载消息。 如果您决定使用工具栏,则无法将其添加到默认 Interface Builder TableViewController 的底部。按照以下步骤将工具栏添加到 TableViewController 子类的底部:
-
在情节提要中插入
UIViewController
(这将替换您的UITableViewController
)
将新 UIViewController
的类设置为 UITableViewController
子类(身份检查器)
在新的UIViewController
底部插入UIToolbar
,并根据需要添加按钮、IBOutlets 和IBAction。
将UITableView
添加到您的UIViewController
以占用剩余的屏幕空间。
在连接检查器中,将 UITableView
的数据源和委托连接到 UITableViewController
子类
根据需要添加和配置尽可能多的原型 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 作为替代?对我不起作用,必须手动指定大小)。
【讨论】:
以上是关于将 TAB BAR 添加到 uitableviewcontroller [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Tab Bar Controller + Navigation Controller + Bar Button Item
在appdelegate类中添加tab bar viewcontroller和DDMenuController
Tab Bar 子 viewWillAppear 不会触发,添加 NavigationController 会给出两个导航栏