1

抱歉,如果这已经讨论过了,我找不到我想要的东西..

我有一个 .plist 文件,其中包含 2 个数组,这些数组完全按照我希望在表格视图中拆分的部分进行拆分。

将数组放入表格视图中没有问题,但我不知道如何告诉应用程序我想要第一部分中的一个数组和第二部分中的第二个数组。

我目前将数组放入表中的代码是这样的(它工作正常):

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Create string with reference to the prototype cell created in storyboard
    static NSString *CellIdentifier = @"PlayerNameCell";

    //Create table view cell using the correct cell type
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier      forIndexPath:indexPath];

    //Create a dictionary containing the player names
    NSDictionary *players = (NSDictionary*) [[self Squad] objectAtIndex:[indexPath row]];

    //Set the cell text to the player name
    [[cell textLabel] setText:(NSString*)[players valueForKey:@"PlayerFullName"]];

    //Set the cell detail text to the squad number
    [[cell detailTextLabel] setText:(NSString*)[players valueForKey:@"PlayerSquadNumber"]];

    return cell;
}

但现在我有另一个表格视图,我需要 2 个部分,每个部分从不同的数组读取。

任何帮助将不胜感激。

非常感谢

4

2 回答 2

0

好的,所以您在顶层有 2 个数组,每个数组都包含数组,对吧?

你有几个方法需要调整。返回表视图中部分数量的顶级数组的数量。在 cellForRowAtIndexPath: 中,为正确的部分/行返回正确的对象。就像是

[[sectionsArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]

于 2012-12-07T12:55:08.343 回答
0

只需执行以下操作:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)aTableView
{
    return 2;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"PlayerNameCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    if( cell == nil ){
        UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    if( indexPath.section == 0 ){
        NSDictionary *players = (NSDictionary*) [self.array1 objectAtIndex:indexPath.row];
        cell.textLabel.text = (NSString*)[players valueForKey:@"PlayerFullName"];
        cell.detailTextLabel.text = (NSString*)[players valueForKey:@"PlayerSquadNumber"];
    } else {
        NSDictionary *players = (NSDictionary*) [self.array2 objectAtIndex:indexPath.row];
        cell.textLabel.text = (NSString*)[players valueForKey:@"PlayerFullName"];
        cell.detailTextLabel.text = (NSString*)[players valueForKey:@"PlayerSquadNumber"];
    }

    return cell;
}

将节数设置为 2。对于每个节,使用 [self.array2 objectAtIndex:indexPath.row] 获取不同的值。

我不知道您如何将 plist 保存到 2 个数组中,但如果您需要帮助,请告诉我。

于 2012-12-07T13:10:43.907 回答