问题
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,
回答1:
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 (e.g. 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.
回答2:
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];
}
来源:https://stackoverflow.com/questions/10793749/how-to-make-multiple-rows-selection-in-uitableview-subview-of-uisplitview