【问题标题】:How to load anotherTableView for every cell that is selected?如何为每个选定的单元格加载另一个表视图?
【发布时间】:2013-09-06 19:26:09
【问题描述】:

我是 Objective-C/iOS 编程的新手,所以对于愚蠢的错误请多多包涵。我有一个正在制作的 Flight Sim 应用程序,它有一个选项卡“清单”。在第一个 tblView 中是飞机(例如 B737、A320)。根据按下的飞机,将加载另一个 tblView,每个飞机都有不同的数据。
这是我的项目 --> https://www.dropbox.com/s/xpysl5or954laep/FS%20Companion.zip
我似乎无法弄清楚如何加载不同的数据。我尝试制作一个 int aircraftNumber,然后为每个飞机文件制作一个对象。然后使用aircraftNumber 执行switch 语句,并在switch 中执行pushViewController。我似乎无法成功创建对象和 indexPath.row。

我希望有人可以提供帮助,并且您理解我的问题。

谢谢,
卢克

【问题讨论】:

  • 如果我理解:你想创建一个tableView,当你点击一行时,你会显示另一个带有数据的tableView,对吗?
  • 是的,但是每一行在第二个tableView中加载不同的数据。如果您查看该项目,我认为这可能比我解释它更有助于理解它:)

标签: ios uitableview switch-statement


【解决方案1】:

您可以在 select 方法中这样做:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Create a DVC Object
    switch ([indexPath row]) {
        case 0:
        {
            ChecklistsA320Controller * A320Contoller = [[ChecklistsA320Controller alloc] initWithNibName:@"ChecklistsA320Controller" bundle:nil];
            [self.navigationController pushViewController:A320Contoller animated:YES];
        }
            break;

        case 2:
        {
            Checklists737Controller * B737Controller = [[Checklists737Controller alloc] initWithNibName:@"Checklists737Controller" bundle:nil];
            [self.navigationController pushViewController:B737Controller animated:YES];
        }
            break;

        default:
            break;
    }
}

但就您而言,我认为您可以改进您的架构。仅使用显示数据的 UITableView 创建一个类“A”。然后创建一个“B”类,它将创建“A”类的实例并管理不同的数据。

【讨论】:

  • 谢谢,那么你的意思是让“A”类包含 TableView,“B”类包含每个飞机的多个 NSArray,比如 A320_checklists 和 B737_checklists 等...?
  • 是的,我认为你可以创建一个飞机类,每架飞机(例如 A380)都会继承飞机。然后您的 B 类管理所有飞机并创建 A 类的实例以显示列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 2018-08-21
  • 1970-01-01
相关资源
最近更新 更多