如何将选定的行显示到另一个uitableview中

时间:2012-11-07 12:11:55

标签: iphone ipad uitableview

任何人都可以解决我的问题。

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

        [tableView deselectRowAtIndexPath:indexPath animated:YES];

        if([self.selectedIndexPaths containsObject:indexPath]){
            [self.selectedIndexPaths removeObject:indexPath];
            NSLog(@"selectedIndexPaths1 :%@",self.selectedIndexPaths);
        } else {
            [self.selectedIndexPaths addObject:indexPath];        
            NSLog(@"selectedIndexPaths2 :%@",self.selectedIndexPaths);          
        }

        [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];    
    }

如何将选定的行(选定的IndexPaths)传递到另一个视图控制器,该tableview(视图控制器)仅显示选定的行?

1 个答案:

答案 0 :(得分:0)

创建新视图控制器时

MyNextViewController *myNextViewController = [MyNextViewController alloc] init];

在下一个视图控制器中有一个方法,它接受selectedIndexPaths的参数。

[myNextViewController setIndexesOfRowsToPresent:self.selectedIndexPaths];

并且在新的视图控制器中,假设您拥有用于填充表的数据模型,请使用它来执行必要的操作。

否则,在原始视图控制器中,而不是创建selctedIndexPaths数组,创建另一个数据数组,以便在下一个视图控制器中显示并传递该数组。这样,您无需在新视图控制器中进行任何操作。您只需传递要显示的数据,并在viewWillAppear上,它将自动正确显示该表。

[myNextViewController setData:mySelectedDataArray];

甚至更好地将它放在新视图控制器的alloc init中。