0

在 viewDidLoad 中,我在第 0 行调用了 tableview selectRowAtIndexPath,之后当我单击其他行时,第 0 行显示为空白。怎么了?编码:

- (void)viewDidLoad
{
    UITableView *leftTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 130, 300)];
    leftTableView.dataSource = self;
    leftTableView.delegate = self;
    leftTableView.tag = 0;
    [leftTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
    dispatch_async(dispatch_get_main_queue(), ^{
        [leftTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:YES scrollPosition:UITableViewScrollPositionNone];
    });
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableView *rightTableView = (UITableView *)[self viewWithTag:1];
    switch (tableView.tag) {
        case 0:
        {
            self.right = self.left[indexPath.row][@"subchild"];
            dispatch_async(dispatch_get_main_queue(), ^{
                [rightTableView reloadData];
            });
        }
            break;
    }
}
4

1 回答 1

0
dispatch_async(dispatch_get_main_queue(), ^{
    [leftTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:YES scrollPosition:UITableViewScrollPositionNone];
});

延迟后执行此方法。愿这对你有所帮助。

于 2013-05-03T05:15:15.390 回答