1

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

基本上:

  • 导航以处理更深入地研究特定列表树。
  • 底部的选项卡栏用于在列表之间切换,它出现在大多数/所有子屏幕上。
  • 选项卡栏的内容在所有屏幕之间都是不变的。
  • 选项卡栏对被点击的反应在所有屏幕上都是相同的:它将用户一直弹出到根目录并将它们放在该列表中。

嵌入在选项卡中的导航,嵌入在导航中的选项卡?似乎两者都不会完全满足我的要求。另一方面,如果我坚持使用基本的导航应用程序并添加标签,我不会有很多额外的代码吗?

对此最好的基本方法是什么?

4

3 回答 3

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]) 中执行此操作。

于 2009-11-28T02:11:17.310 回答
1

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

于 2009-11-28T01:35:10.417 回答
0

Apple 有一些关于组合视图控制器(选项卡控制器内的导航控制器)的出色文档

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

于 2010-08-02T11:32:44.677 回答