0

我在 2 个 xib 中有 2 个表视图,它们都有自己的类。我想要实现的是,当 TableView1 的选定行为 4 时,TableView2 的选定行也是 4,反之亦然。所以选择的行号应该在 TableViews 之间是相同的。我如何实现这一目标?

我在想类似的东西:tableview1.tablerow == tableview2.tablerow,但不知道如何执行这个。

4

2 回答 2

0

这可以通过多种方式实现。在两个表视图上创建一个属性并将其设置为选定的单元格,例如:

在两个 tableViews 上

@property (nonatomic, strong) NSIndexPath *selectedCell;

在选择一个单元格时,只需在另一个单元格上设置参数

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
   //imagine there is a reference to the tableView2
   self.tableView2.selectedCell = indexPath;
   //display the tableView2 or do whatever is needed
}

在 tableView2 的 viewWillAppear 上,只需设置所选行以反映该属性

- (void)viewWillAppear:(BOOL)animated{  
    [super viewWillAppear:animated];    
    [self.tableView selectRowAtIndexPath:selectedCell animated:NO scrollPosition:UITableViewScrollPositionNone]; 
}

反过来也是一样。

于 2013-06-03T08:30:15.020 回答
0

在 tableviewcontroller 中为 TableView2 设置接收器,当您在 TableView1 中选择一行时,使用以下内容更新 TableView2:

NSManagedObjectID* selectedRow=[[self.frc objectAtIndexPath:indexPath] objectID];
TableView2* tableview2controller=[[TableView2 alloc] init];
tableview2controller.selectedRow = selectedRow;
于 2013-06-03T08:31:08.857 回答