在标签栏控制器中实现表格视图?

Posted

技术标签:

【中文标题】在标签栏控制器中实现表格视图?【英文标题】:Implementing a Table View in a Tab Bar Controller? 【发布时间】:2011-02-12 22:39:23 【问题描述】:

我开始学习表格视图。我的应用程序使用选项卡栏控制器,所有选项卡都是简单视图。我想添加另一个选项卡,并在此选项卡中尝试实现表格样式导航控制器。从我正在阅读的内容来看,这些视图需要一个 UINavigation 控制器作为根视图控制器,但是我的标签栏控制器已经设置为我的根视图控制器,所以我有点困惑。

谁能解释我应该怎么做才能实现这样的东西。

【问题讨论】:

【参考方案1】:

这是一个很好的问题,也是大多数刚接触 Cocoa 的开发人员一直在纠结的问题。您需要考虑您的应用程序的架构,看看什么对您的要求最有意义,但在大多数情况下,您会希望 TabBarController 成为服务其他视图的主/根控制器,然后从那里配置 tabItem 视图根据您需要显示的数据。

对于您的特定情况,当您创建一个新的选项卡项时,您希望使用导航控制器,而不是为该 tabItem 视图提供 UIViewController。然后,在导航控制器下,您将能够分配其根视图控制器,它应该是 UITableViewController 的一个实例(或者如果您的视图中需要的不仅仅是 UITableView,则可以是带有 UITableView 实例的 UIViewController)。

所以层次结构有点像这样

1 -- TabBarController

1.1 -----导航控制器

1.1.1 -------UITableViewController

1.1.1 -------您的导航控制器堆栈上的其他视图

1.2 -----tabBarController 上的任何其他视图

这里有一个很好的视频教程可以帮助你:http://www.youtube.com/watch?v=LBnPfAtswgw

祝你好运, 罗格

【讨论】:

惊人的链接兄弟!这正是我所需要的,我刚刚看完,我已经有了我想要去的骨架。我只需要注意细节。非常感谢!【参考方案2】:

首先,表格视图不一定要嵌入到导航控制器中。大多数情况下是这样,但这不是必需的。

要添加表格视图,您将创建一个UITableViewController(或嵌入其中的UITableView 的通用UIViewController,这取决于您的需要)并将其放入您的UITabBarController viewControllers 属性中。例如:

UIViewController *vc1 = [[FirstViewController alloc] init];
UIViewController *vc2 = [[SecondsViewController alloc] init];
UITableViewController *tableVC = [[UITableViewController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects:vc1, vc2, tableVC, nil];

当然,上面的视图控制器应该是具体的子类,以便您可以实现自定义视图和逻辑。

【讨论】:

以上是关于在标签栏控制器中实现表格视图?的主要内容,如果未能解决你的问题,请参考以下文章

推回标签栏的视图控制器后标签栏消失

无法在标签栏控制器中重新加载表格视图

从标签栏应用程序中的表格视图推送新的视图控制器

带有标签栏的左侧菜单?

由于标签栏挡住了单元格,如何设置表格视图单元格的位置?

滑动 ViewController 时出现导航栏错误