在TabBar导航中的NavigationBar中的TableView?

时间:2011-01-27 13:09:37

标签: iphone cocoa-touch tableview tabbar

我正在构建一个具有多个级别的应用程序。

  • 第一级是屏幕底部的标签。 (主窗口)

  • 第二级是TableView(位置)中每个标签显示的内容

  • 第三级是第二级内容中所选项目的详细概述。 (LocationDetails)

第一级和第二级工作正常。现在我想创建详细概述的内容。我创建了一个名为LocationDetails.xib的新NIB。它只包含一些静态文本(插入的文本视图)。所以我可以查看加载的窗口。

在Locations.m文件中,我有以下功能:

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

NSString * locationCity = [[locations objectAtIndex:indexPath.row] objectForKey:@"city"];

NSLog(@"Your choice is: %@", locationCity);

在这个函数中,我想转到另一个视图(LocationDetails)。什么是最好的方式。如果我没有给你足够的信息,请告诉我!我可以提供您需要的所有信息!

希望尽快收到你的来信!

亲切的问候,

的Douwe

1 个答案:

答案 0 :(得分:1)

我会使用导航控制器。

在你的主xib文件中你会得到这样的结果:

UITabBarViewController // Main Window
  tab 1:
    UINavigationController
      UITableView // (Locations)

  tab 2:
    UINavigationController
      UITableView // (Locations)

然后,在LocatonDetails上滑动的代码很简单:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    LocationDetailsViewController = [[LocationDetailsViewController alloc] initWithNibName:@"LocationDetails" bundle:nil];
    controller setLocation:[locations objectAtIndex:indexPath.row]];
    [[self navigationController] pushViewController:controller animated:YES];
    [controller release];
}