在标签栏控制器中实现表格视图?
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];
当然,上面的视图控制器应该是具体的子类,以便您可以实现自定义视图和逻辑。
【讨论】:
以上是关于在标签栏控制器中实现表格视图?的主要内容,如果未能解决你的问题,请参考以下文章