2013-08-02 52 views
0

我有一個對象的數組有多個實例變量(name,address,number等)。我也有一個UITableViewController其表格視圖填充了每個這些對象的name變量。如何在數組中使用UITableViewCell引用對象?

我還創建了一個DetailViewController,當該對象的指定單元格與tableView:didSelectRowAtIndexPath:一起選擇時,它應該顯示這些對象所持有的其餘信息。問題是,這些單元格只能引用單元格的對象'name變量。

我應該如何解決這個問題?我是否需要繼承該單元格,以便可以爲每個單元格提供整個對象的引用?還是有更簡單的方法?

這是我目前tableView:cellForRowAtIndexPath:方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    if(!cell){ 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"]; 
    } 
    cell.textLabel.text = [[listings objectAtIndex:indexPath.row] objectForKey:@"listingName"]; 
    return cell; 
} 

更新:它只是發生在我,我可以從indexPath搶行號,並抓住該數組中的指定對象。這會更可行嗎?

+0

子類,並聲明一個屬性? – 2013-08-02 20:22:47

+0

您當然不會將單元格子類化以獲取對整個對象的引用 - 單元格用於顯示數據,而不用於提供數據。你的最後一句提到了要走的路。 – rdelmar

回答

4

tableView:didSelectRowAtIndexPath:您可以使用[listings objectAtIndex:indexPath.row]獲取選定的對象,並將其傳遞給詳細視圖控制器。

(你不應該嘗試使用表格視圖單元作爲數據源。)

+0

感謝您的額外信息,我會記住這一點。 –

+0

,如果你真的想要所有'nu skool'你可以做'列表[indexPath.row]' – NSTJ

2

因爲你是直接從他們的陣列位置上顯示的列表,你把他們救出來再以同樣的方式,一旦你按下一行。

tableView:didSelectRowAtIndexPath:只是做[listings objectAtIndex:indexPath.row]讓有問題的對象,並把它交給了DetailViewController