3

我想在 UISplitview 的子视图 uitableview(uipopover 视图)中进行多行选择。选定的行信息应显示在拆分视图的详细窗格中的 Lable 中。

我设法获得了多行选择,但没有在详细窗格中显示选定的行信息。

任何帮助/片段代码将不胜感激。

谢谢,

4

2 回答 2

1

由于您没有给我们一些示例代码,我们无法为您提供确切的代码片段。有很多方法可以填充 tableView 那么我们怎么知道你是怎么做到的呢?

尽管如此,我会告诉你它应该如何抽象地工作。您将需要一个具有当前选择的数组,或者 - 正如@Ricard Pérez del Campo 所建议的那样 - 您将一个属性添加到包含状态的数据模型中(例如selected)。

第 2 步,您将在每次
a) 更改选择或
b)tableView显示在屏幕上(viewWillAppear并出现弹出窗口)时检查此属性(或数组)

因此,您需要一个可从所有地方获得的数据源(在您的情况下为Popover、 thesplitView和 a detailView

你说一个tableView已经工作了,所以第二个的问题可能是选择dataSource。调用中
还有一个方法将为您提供当前选择的数组。您可以将该选择应用于另一个选择,但这是一种骇人听闻的方式,您绝对应该更改您的数据模型。UITableViewindexPathsForSelectedRowstableView

于 2012-06-01T16:49:28.877 回答
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];
}
于 2012-06-07T09:27:39.817 回答