带表格视图的标签栏 - 就像iTunes /音乐应用程序一样!

时间:2011-06-15 16:29:42

标签: iphone uitableview views tabbar

我正在尝试复制音乐应用程序的功能(内置于我们所有的iPhone / iPod中的功能)。 我的目标是:

1)底部的Tab-Bar控制器,每个标签点击加载一个TableView。

2)当加载这些各种表视图时,需要确保Tab-Bar永远不会消失

3)Table-Views必须使用户能够进一步深入到其他表视图中,有时深入3或4级 - 但是标签栏永远不会消失

4)最后一件事:如果可能的话,所有加载的表视图都不应该是导航控制器,而是那些随后包含表的常规UIViewControllers(这是因为当它们被创建为表时,似乎无法调整表的大小“UITableViewController”,只有当它们嵌入到常规UIViewControllers中时,才会从对象库中拖放到现有视图中。)

有人在那里进行某种教程甚至代码模板/引擎类型的事情,他们可以与我们分享如何做到这一点?

1 个答案:

答案 0 :(得分:2)

据我所知,您知道可以将UINavigationControllers用作UITabBarController的控制器。那么不使用导航控制器的原因是什么?

这必须完全是你想要做的事情:在代码中创建表或者将它作为插件链接到Interface Builder,因为你可以使用UIViewController或UITableViewController(它继承自UIViewController)作为root并弹出到NavController的堆栈。

假设您使用XCode 4,则指向tutorial

的链接

UPD:

对于页眉和页脚视图,最好使用UITableView对象的 tableHeaderView tableFooterView 属性。然后,您无需计算边距并自动更新视图布局。

关于导航,通常的做法是将包含表的控制器设置为表委托本身,然后使用方法

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

当您选择其中一个表格单元格时,将调用该方法,您可以创建下一个视图控制器的实例,预先配置它,然后推送到导航堆栈。后退按钮自动出现 - 您已完成。如果你在下一个导航控制器中有表,那么在复制粘贴前一个方法的时候要小心,即如果你有行的行数

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

您的申请将崩溃。