保留桌面之间的选择

问题描述:

我在2个xib中都有2个tableviews,都有自己的类。我想实现的是,当TableView1的选定行是4时,TableView2的选定行也是4,反之亦然。所以选择的行号在TableView之间应该是相同的。我如何实现这一目标?保留桌面之间的选择

我想的是这样的:tableview1.tablerow == tableview2.tablerow,但不知道如何执行此操作。

+0

你的问题不明确 – manujmv

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

在两个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 
} 

并在viewWillAppear of tableView2只是设置选定的行以反映该属性

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

和其他方式一样。

+0

感谢您的回答!这就是我一直在寻找的东西,但我正在碰到一些东西。点击按钮时,表格弹出窗口会显示出来。当我在tableview1中选择一行时,tableview2中的行会更新。但是当我再次点击tableview1时,该行仍然是tableview2中前一行的同一行。我希望你了解这个问题! – Torylon

+0

不确定你的意思,你能详细说明一下吗?无论如何,只是在某些地方保存选定的indexPath并在需要时更新另一个表(viewWillAppear或任何适合您的需求) – Emilio

+0

那么,当我在TableView1上选择一行时,该行就像预期的那样更新到TableView2。但是当我再次单击TableView 1时,所选行就是先前在TableView2中选择的行。不太确定如何正确解释。 – Torylon

设置一个接收器在tableviewcontroller为TableView2,当你选择TableView1更新TableView2一排是这样的:

NSManagedObjectID* selectedRow=[[self.frc objectAtIndexPath:indexPath] objectID]; 
TableView2* tableview2controller=[[TableView2 alloc] init]; 
tableview2controller.selectedRow = selectedRow; 
+0

我不得不在此添加一个初学者,我理解这个解决方案,但我不知道如何精确地编写代码。 – Torylon

+0

啊......埃米利奥刚刚发布了一个更详细的解决方案,所以去那。 – Sven