我想在uitableview(uipopover视图)中选择多行,这是UISplitview的子视图。选定的行信息应显示在splitview的详细信息窗格中的Lable中。
我设法获得多行选择,但没有在详细信息窗格中显示所选行信息。
我们将不胜感激任何帮助/代码段。
谢谢,
答案 0 :(得分:1)
因为您没有提供一些示例代码,所以我们无法为您提供准确的代码段。有很多方法可以填充tableView,所以我们应该怎么知道你是怎么做到的?
尽管如此,我会告诉你它应该如何抽象地运作。你需要一个包含当前选择的数组,或者 - 如@RicardPérezdelCampo建议的那样 - 你在数据模型中添加一个包含状态的属性(例如selected
)。
第2步,每次你都要检查这个属性(或数组)
a)更改选择或
b)tableView
显示在屏幕上(viewWillAppear
并显示弹出窗口)
因此,您需要一个可在所有地方使用的数据源(在您的情况下为Popover
,splitView
和detailView
)
你说一个tableView
已经工作了,所以第二个问题可能就是选择dataSource
。
UITableView
中还有一个名为indexPathsForSelectedRows
的方法,它会为您提供当前选择的数组。您可以将该选择应用于其他tableView
,但这是一种hackish方式,您肯定应该改变您的数据模型。
答案 1 :(得分:1)
在表视图控制器中添加以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableView.allowsMultipleSelection = YES;
}
在表格视图中委托添加:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSArray *selectedRows = [tableView indexPathsForSelectedRows];
NSMutableArray *mySelectedObjects = [NSMutableArray array];
for (NSIndexPath *indexPath in selectedRows) {
MyObject *object = [datasource objectAtIndex:indexPath.row];
[mySelectedObjects addObject:object];
}
[self showSelectedObjectsInDetailPane];
}