手动将 UITabBar 添加到 UITableViewController

Posted

技术标签:

【中文标题】手动将 UITabBar 添加到 UITableViewController【英文标题】:manually add UITabBar to UITableViewController 【发布时间】:2011-05-08 21:29:46 【问题描述】:

我有一个标准应用程序,它带有一个导航控制器,用于管理多个 UITableViewController 类。

我想在根视图(一个 UITableViewController)中添加一个 UITabBar 来管理过滤 UITableView 中显示的对象的选择。

我不想要/不需要 UITabBarController。 UITabBar 仅用于功能和 UI(单选按钮样式选择和熟悉的标签栏 UI)。我只想手动创建一个 UITabBar 并将其添加到我的视图中,锚定/锁定到屏幕的最底部,就像使用 UITabBarControllers 时的情况一样。

我的主要问题是我不知道应该添加什么 UITabBar 作为子视图。

我不想将它添加到控制器 self.tableView 中,因为那样它会锚定在滚动 TableView 的底部,并且并不总是在屏幕底部可见。

我也尝试添加到 view.tableView.superview,但似乎效果不佳。

任何帮助,还是我完全在“以错误的方式过滤 tableview 数据”并且应该改用其他东西?

【问题讨论】:

【参考方案1】:

所以,UITableViewController 的问题在于它并不像您预期​​的那样工作。将“锁定”元素添加到 UITableView 是非常困难的 - 表格页脚和标题不起作用,而且您发现将其添加到超级视图不起作用。

在这种情况下最好的解决方案实际上是将表格视图控制器扔出窗口,并使用带有普通视图控制器的表格视图。

你要做的是创建一个普通的UIViewController,然后给它添加一个表格视图。您的表视图委托和数据源也可以在此视图控制器中。

然后您可以将表格视图的大小调整为小于屏幕的大小,并将您的UITabBar 添加到视图控制器的主视图中。

【讨论】:

好的,这是有道理的。让我问一下是否有替代使用 UITabBar 来做我想做的事情。尝试使 UIToolbar 模仿 UITabBar (视觉上),然后我可以将其用作 UITableView 的工具栏,是否值得麻烦?我不反对以编程方式创建一个普通的 UIViewController,只是好奇 我猜你可以。您需要一些技巧/黑客才能使您的工具栏看起来与标签栏完全一样 - 标签栏比工具栏高约 6 像素,您还需要重新实现您免费获得的所有逻辑一个标签栏。但这肯定是一种方法。

以上是关于手动将 UITabBar 添加到 UITableViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UIViewController/UITabBar 添加到 UITableViewCell?

将 UITabBarItem 添加到 UIViewController 中的 UITabBar

将标签栏项目添加到 UITabBar 时出现问题

将 UITabBarItems 添加到 UITabBar

如何将 UINavigationController 添加到 UITabBar 应用程序的第一个视图?

使用代码布局时如何防止视图进入UITabBar