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

て烟熏妆下的殇ゞ 提交于 2019-12-10 17:51:37

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!