我想在 UISplitview 的子视图 uitableview(uipopover 视图)中进行多行选择。选定的行信息应显示在拆分视图的详细窗格中的 Lable 中。
我设法获得了多行选择,但没有在详细窗格中显示选定的行信息。
任何帮助/片段代码将不胜感激。
谢谢,
我想在 UISplitview 的子视图 uitableview(uipopover 视图)中进行多行选择。选定的行信息应显示在拆分视图的详细窗格中的 Lable 中。
我设法获得了多行选择,但没有在详细窗格中显示选定的行信息。
任何帮助/片段代码将不胜感激。
谢谢,
由于您没有给我们一些示例代码,我们无法为您提供确切的代码片段。有很多方法可以填充 tableView 那么我们怎么知道你是怎么做到的呢?
尽管如此,我会告诉你它应该如何抽象地工作。您将需要一个具有当前选择的数组,或者 - 正如@Ricard Pérez del Campo 所建议的那样 - 您将一个属性添加到包含状态的数据模型中(例如selected
)。
第 2 步,您将在每次
a) 更改选择或
b)tableView
显示在屏幕上(viewWillAppear
并出现弹出窗口)时检查此属性(或数组)
因此,您需要一个可从所有地方获得的数据源(在您的情况下为Popover
、 thesplitView
和 a detailView
)
你说一个tableView
已经工作了,所以第二个的问题可能是选择dataSource
。调用中
还有一个方法将为您提供当前选择的数组。您可以将该选择应用于另一个选择,但这是一种骇人听闻的方式,您绝对应该更改您的数据模型。UITableView
indexPathsForSelectedRows
tableView
在表视图控制器中添加以下代码:
- (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];
}