我在 2 个 xib 中有 2 个表视图,它们都有自己的类。我想要实现的是,当 TableView1 的选定行为 4 时,TableView2 的选定行也是 4,反之亦然。所以选择的行号应该在 TableViews 之间是相同的。我如何实现这一目标?
我在想类似的东西:tableview1.tablerow == tableview2.tablerow,但不知道如何执行这个。
我在 2 个 xib 中有 2 个表视图,它们都有自己的类。我想要实现的是,当 TableView1 的选定行为 4 时,TableView2 的选定行也是 4,反之亦然。所以选择的行号应该在 TableViews 之间是相同的。我如何实现这一目标?
我在想类似的东西:tableview1.tablerow == tableview2.tablerow,但不知道如何执行这个。
这可以通过多种方式实现。在两个表视图上创建一个属性并将其设置为选定的单元格,例如:
在两个 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];
}
反过来也是一样。
在 tableviewcontroller 中为 TableView2 设置接收器,当您在 TableView1 中选择一行时,使用以下内容更新 TableView2:
NSManagedObjectID* selectedRow=[[self.frc objectAtIndexPath:indexPath] objectID];
TableView2* tableview2controller=[[TableView2 alloc] init];
tableview2controller.selectedRow = selectedRow;