我在2個xib中都有2個tableviews,都有自己的類。我想實現的是,當TableView1的選定行是4時,TableView2的選定行也是4,反之亦然。所以選擇的行號在TableView之間應該是相同的。我如何實現這一目標?保留桌面之間的選擇
我想的是這樣的:tableview1.tablerow == tableview2.tablerow,但不知道如何執行此操作。
我在2個xib中都有2個tableviews,都有自己的類。我想實現的是,當TableView1的選定行是4時,TableView2的選定行也是4,反之亦然。所以選擇的行號在TableView之間應該是相同的。我如何實現這一目標?保留桌面之間的選擇
我想的是這樣的: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
}
並在viewWillAppear of tableView2只是設置選定的行以反映該屬性
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.tableView selectRowAtIndexPath:selectedCell animated:NO scrollPosition:UITableViewScrollPositionNone];
}
和其他方式一樣。
感謝您的回答!這就是我一直在尋找的東西,但我正在碰到一些東西。點擊按鈕時,表格彈出窗口會顯示出來。當我在tableview1中選擇一行時,tableview2中的行會更新。但是當我再次點擊tableview1時,該行仍然是tableview2中前一行的同一行。我希望你瞭解這個問題! – Torylon
不確定你的意思,你能詳細說明一下嗎?無論如何,只是在某些地方保存選定的indexPath並在需要時更新另一個表(viewWillAppear或任何適合您的需求) – Emilio
那麼,當我在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;
你的問題不明確 – manujmv