我有两个UITableViewControllers。在第一个UITableView中,一旦用户选择了一个单元格,就会推送一个新的UITableViewController。我在IB中将两个UITableViews设置为“Grouped”。但是,当第二个UITableViewController被推送时,它显示为“普通”UITableView。有办法解决这个问题吗?
正如一个完整性检查,我更改了代码,以便第二个UITableViewController不是从第一个UITableViewController推送的,它看起来确实是“Grouped”。这有什么原因吗?
代码来自推动第二个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];
}
}
答案 0 :(得分: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;
}
}