0

我有两个 UITableViewControllers。在第一个 UITableView 中,一旦用户选择了一个单元格,就会推送一个新的 UITableViewController。我在 IB 中将两个 UITableViews 都设置为“分组”。但是,当推送第二个 UITableViewController 时,它会显示为“普通”UITableView。有没有办法解决这个问题?

作为一个健全的检查,我更改了代码,以便第二个 UITableViewController 不是从第一个 UITableViewController 推送的,而且它似乎是“分组的”。发生这种情况有原因吗?

来自 UITableViewController 的代码正在推送第二个 UITableViewController:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

   if ([cell.text isEqualToString:@"Long Term Disability"]) { 
    LongDisabilityTableView *ldvc = [LongDisabilityTableView alloc]; 
    [self.navigationController pushViewController:ldvc animated:YES];
   }
    if ([cell.textLabel.text isEqualToString:@"Short Term Disability"]) {

        ShortDisabilityTableView *sdvc = [ShortDisabilityTableView alloc]; 
        [self.navigationController pushViewController:sdvc animated:YES];
    }

}
4

1 回答 1

0

如果您要推送到UITableViewController,则可以通过执行以下操作之一来强制对表进行分组:

在里面

MyTableController *grouped = [[MyTableController alloc] initWithStyle:UITableViewStyleGrouped];

极好的

这需要添加到UITableViewController.

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:UITableViewStyleGrouped]; /* This is where the magic happens */
    if (self) {
        self.title = @"My Grouped Table";
    }
    return self;
}

再确认一次

确保您没有将您的设备UITableView放在UIViewController.

确保您在代码中调用了正确的控制器(来自didSelectRowAtIndexPath:

更新,代码后添加

那么有一个原因,你没有使用init。请参阅上面的第一个示例。

您还应该将代码更改为:

/*  This assumes that your Long Term Disability cell is at index 0
    and that your Short Term Disability cell is at index 1. 
 */
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    switch ( indexPath.row )
    {
        case 0: /* @"Long Term Disability" */

            LongDisabilityTableView *ldvc = [[LongDisabilityTableView alloc] initWithStyle:UITableViewStyleGrouped]; 
            [self.navigationController pushViewController:ldvc animated:YES];
            break;

        case 1: /* @"Short Term Disability" */

            ShortDisabilityTableView *sdvc = [[ShortDisabilityTableView alloc] initWithStyle:UITableViewStyleGrouped];
            [self.navigationController pushViewController:sdvc animated:YES];
            break;
    }
}
于 2012-04-29T05:02:27.350 回答