2012-05-29 110 views
0

將數組推送到tableView單元格的stackoverflow的最佳答案是「以更簡單的事情開始」。我認爲我們可以做得比這更好......ios push array to uitableview

我相信我已經擁有了一切,除了我找不到從rootView獲取數據的正確方法之外。見下文。

下面的代碼將一個數組推送到DetailView控制器中,並將三個單元格放在一個組中,並在頂部單元格中顯示「Get Cell Info Here」。有人可以解釋我需要做些什麼才能將實際數據導入頂層單元格?感謝

RootViewController.m 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath  *)indexPath 
{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

    DetailViewController *selectedCell = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
    [self.navigationController pushViewController:selectedCell animated:YES]; 

} 

DetailViewController.h

@interface DetailViewController : UITableViewController { 

    NSArray *displayCell; 

} 
@end 

DetailViewController.m

- (void)viewWillAppear:(BOOL)animated 
{ 

    //Display the selected cell data 

    displayCell = [[NSArray alloc] initWithObjects:@"Get Cell Info Here", nil]; 

    //Set the title of the navigation bar 
    self.navigationItem.title = @"wtf"; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 


    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] ; 

    // Make cell unselectable 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 

    NSString *cellText = nil; 

    switch (indexPath.row) { 
     case 0: { 
      cellText = [displayCell objectAtIndex:indexPath.row]; 

      break ; 
     } 
     case 1: { 

      break ; 
     }  
     case 2: { 

      break ; 
      default: 
       break; 
      }    
     } 

     cell.textLabel.text = cellText; 
     return cell; 

} 
+0

我想你想將RootViewController的數組傳遞給DetailView,我是嗎? –

+0

你是否試圖將你的數組發送到一個詳細視圖?澄清。這聽起來像你有一個表視圖,你想從一個數組中填充併發送實際的數組,當點擊它的細節視圖。爲我們澄清。 – erran

+0

哇,這很快...是的,我沒有進入數據...我有三個信息,標題,細節,圖片。它們都顯示在數組中,現在我試圖讓它們在DetailViewController中的一個單元格中顯示,但是這次它將顯示「全部」細節,而不是僅顯示2行和截斷的尾部。 – user1424344

回答

0

一個屬性添加到DetailViewController如下:

@property (nonatomic, retain) NSArray *passedItems; 

然後有根視圖控制器通項目如下:

selectedCell.passedItems = passedItems; // passedItems is array in rootview controller 

然後你可以在DetailedViewController中使用passedItems。

+0

好的,現在在哪裏(selectedCell.passedItems = passedItems;)去?在didSelectRow ..?怎麼樣? – user1424344

+0

我只使用「selectedCell」在didSelectRowAtIndexPath中推送視圖。在RootView中顯示數組我使用「cellArray」。這是我錯過了從RootView數據到DetailView數據的連接的地方。感謝您迄今爲止的幫助@jamihash – user1424344

+0

在didSelect方法中創建DetailedViewController後,它會正常運行。 passedItems應包含DetailedViewController顯示其表格單元格所需的所有項目。 – jamihash