简体   繁体   中英

How to make multiple rows selection in UITableView subview of UISplitView?

I want to make multiple rows selection in uitableview(uipopover view) which is subview of UISplitview. The selected rows info should be displayed in Lable in detail pane of splitview.

I have managed to get multiple rows selection but not getting to display the selected rows info in detail pane.

Any help/snippet code would be appreciated.

Thanks,

since you don't give us some sample code we cannot provide you exact snippets. There are plenty ways to fill a tableView so how should we know how you did that?

Nonetheless I will tell you how it should work abstractly. You will need either an array with the current selection or - as @ Ricard Pérez del Campo suggested - you add a property to your data-model which contains the state (eg selected ).

Step 2 you will check this property (or array) every time you
a) change the selection OR
b) the tableView is displayed on screen ( viewWillAppear and popup appear)

Therefore you need a dataSource which is available from all places (in your case the Popover , the splitView and a detailView )

You said one tableView already work so the problem for the second is probably the selection dataSource .
There is also a method in UITableView called indexPathsForSelectedRows which will give you an array for the current selection. You could apply that selection to the other tableView but it's a hackish way and you should definitely change your data-model instead.

In the table view controller add this code:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tableView.allowsMultipleSelection = YES;
}

In the table view delegate add this:

- (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];
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM