2013-06-03 77 views
0

我在2個xib中都有2個tableviews,都有自己的類。我想實現的是,當TableView1的選定行是4時,TableView2的選定行也是4,反之亦然。所以選擇的行號在TableView之間應該是相同的。我如何實現這一目標?保留桌面之間的選擇

我想的是這樣的:tableview1.tablerow == tableview2.tablerow,但不知道如何執行此操作。

+0

你的問題不明確 – manujmv

回答

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 
} 

並在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

0

設置一個接收器在tableviewcontroller爲TableView2,當你選擇TableView1更新TableView2一排是這樣的:

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

我不得不在此添加一個初學者,我理解這個解決方案,但我不知道如何精確地編寫代碼。 – Torylon

+0

啊......埃米利奧剛剛發佈了一個更詳細的解決方案,所以去那。 – Sven