我想在UITableView的(uipopover视图)多行的选择是UISplitview的子视图。 所选行信息应在SPLITVIEW的详细信息窗格中显示拉布勒。
我设法让多行选择,但没有得到显示在详细信息窗格中选择的行信息。
任何帮助/代码片段,将不胜感激。
谢谢,
我想在UITableView的(uipopover视图)多行的选择是UISplitview的子视图。 所选行信息应在SPLITVIEW的详细信息窗格中显示拉布勒。
我设法让多行选择,但没有得到显示在详细信息窗格中选择的行信息。
任何帮助/代码片段,将不胜感激。
谢谢,
既然你不给我们一些示例代码,我们不能为您提供精确的片段。 有很多方法来填充的tableView所以我们应该怎么知道你是怎么做的?
不过我会告诉你应该如何抽象工作。 您需要使用与当前选择或数组-作为@理查德·佩雷斯·坎波建议-你的属性添加到包含状态的数据模型(如selected
)。
第2步,你会检查这个属性(或阵列),每次
一)更改选择OR
b)该tableView
显示在屏幕上( viewWillAppear
和弹出显示)
因此,你需要一个DataSource它可以从所有的地方(在你的情况Popover
的splitView
和detailView
)
你说一个tableView
已经工作,以便为第二问题是可能的选择dataSource
。
还有一种方法UITableView
称为indexPathsForSelectedRows
这将给你当前选择的数组。 您可以应用该选择其他tableView
但它是一个hackish的方式,你一定要改变你的数据模型来代替。
在表格视图控制器添加以下代码:
- (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];
}