1

次のような小さなフィードバックのためにタップされたときに UITableViewCell を更新しようとしています:

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

    if ([[self.menuItems objectAtIndex:aPath.row] isEqualToString:@"AirPrint Order"]) {

        UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
        cell.textLabel.text=@"Generating Order Receipt";
        NSArray *nsa = [[NSArray alloc] initWithObjects:indexPath, nil];
        [tableView reloadRowsAtIndexPaths:nsa withRowAnimation:UITableViewRowAnimationNone];
    }
}

このコードは、デバッガーで if ステートメント内に作成しても何もしないように見えますが、セル テキストでは何も起こりません。

4

1 に答える 1

7

を呼び出すreloadRowsAtIndexPathsと、実際にはcellForRowAtIndexPath:再度呼び出してセルをリロードし、.csv でセルに適用した変更を削除しますdidSelectRowAtIndexPath。私がお勧めするのは、didSelectRowAtIndexPathメソッド内のデータを更新し、それを で読み取ることですcellForRowAtIndexPath

于 2012-05-23T15:32:56.280 に答える