标签/导航混合,如iPod /音乐

时间:2009-11-27 21:30:39

标签: iphone uinavigationcontroller uitabbarcontroller uitabbar

我正在开发一个应用程序,我想使用iPod / Music应用程序用来导航播放列表的相同混合导航和标签栏。

基本上:

  • 导航以深入研究特定列表树。
  • 底部的标签栏可在列表之间切换,列表显示在大多数/所有子屏幕上。
  • 标签栏的内容在所有屏幕之间保持不变。
  • 标签栏对被点击的反应在所有屏幕上都是相同的:它会将用户一直弹回到根目录并将它们放在该列表上。

导航嵌入在标签中,导航中嵌入的标签?似乎它不会完全符合我的要求。另一方面,如果我坚持使用基本的导航应用程序并只添加标签,那么我是不是会有更多的额外代码?

最好的基本方法是什么?

3 个答案:

答案 0 :(得分:2)

我已经构建了这样做的应用程序。考虑它的最佳方式是从最狭窄的部分开始,即各个视图控制器。在iPod示例中,这将包括艺术家,专辑,播放列表,歌曲等的控制器。请注意,如果您点击播放列表,它会将您带到歌曲列表。这是两个独立的视图控制器。

您在iPod应用中看到的每个标签都有一个导航控制器。导航控制器包装应用程序选项卡的根视图控制器。然后将每个导航控制器设置为选项卡控制器的ViewControllers。代码看起来像这样

FirstTabViewController *first = [[FirstTabViewController alloc] init...];
SecondTabViewController *second = ...;

UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:first];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:second];

myTabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nil];
// Then make sure to release things to avoid leaks

如果您想要处理来自所选播放列表中的说明,播放列表 - >歌曲列表的转换,您可以在播放列表视图控制器([self.navigationController pushViewController:theListOfSongsViewController animated:SUREWHYNOT])中执行此操作。

答案 1 :(得分:1)

到目前为止,我正在查看每个窗格中带有UINavigationControllers的UITabBarController,其中包含一些自定义代码,用于将目标选项卡上的导航控制器弹回到选项卡开关上的根目录。

答案 2 :(得分:0)

Apple有一些关于组合视图控制器(标签控制器内的导航控制器)的优秀文档

http://developer.apple.com/iphone/library/featuredarticles/ViewControllerPGforiPhoneOS/CombiningViewControllers/CombiningViewControllers.html