2012-11-23 52 views
0

我正在構建一個使用UICollectionView顯示博客帖子數組的應用程序。如何從DetailView中推送UITableView?

當用戶點擊帖子時,會推送DetailView以顯示帖子的內容。

在Detail View中,可以看到張貼的圖片,文字等。還有一個按鈕可以顯示註釋。

我希望用戶能夠點擊comments按鈕並加載一個UITableView,它將顯示爲該帖子寫的所有評論。這是我無法實現的部分。

我用接口生成器創建了一個UITableView,並使用segue將它連接到DetailView。當點擊按鈕comments時,我得到一張空桌子。

在我的DetailView攻的評論按鈕觸發此:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([[segue identifier] isEqualToString:@"showComments"]) { 

     NSDictionary *post   = self.detailItem; 
     NSArray  *commentThread = [post objectForKey:@"comment"]; 

     // how do I pass the commentThread to the UITableView at the other end of the segue? 
    } 
} 

任何想法如何完成這件事?很高興發佈更多的代碼。

這是我CommentViewController.m

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"commentCell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

    NSDictionary *comment  = [self.commentArray objectAtIndex:indexPath.row]; 
    NSString  *commentText = [comment objectForKey:@"comment_text"]; 
    NSString  *commentAuthor = [comment objectForKey:@"comment_author"]; 

    cell.textLabel.text = commentText; 

    return cell; 

    NSLog(@"%@", comment); 
} 

而且

#import <UIKit/UIKit.h> 

@interface CommentViewController : UITableViewController { 
    NSArray *commentArray; 
} 

@property (strong, nonatomic) id commentArray; 

@end 

回答

2

你創建你的UITableView控制器?

我可能沒有正確理解你的設計目標,所以對不起,如果這看起來像一個基本的答案,但如果你正在執行一個seque,那麼你應該初始化tableview控制器並以某種方式設置你的數據源。

例如,在您的SEGUE準備,你應該有這樣的事情:

CommentsControllerView *myTableView = segue.destinationViewController; 
myTableView.commentsArray = self.commentsArray; 
myTableView.itemId = self.itemId; 
在自定義的tableview控制器

,您可以創建一個NSArray的屬性來保存的意見陣列和設置每標準你的tableview程序。或者你會使用一些邏輯來檢索適當的註釋併爲你的新tableview加載tableview數據源。當它初始化時,它會將數據傳遞給它,然後它應該像使用tableview委託和數據源方法的標準tableview一樣操作。

這有幫助嗎?希望如此。

+0

@CocoaaEv - 我確實爲UITableView創建了一個名爲'CommentsControllerView.h/m'的控制器 - 它們都是基於UITableView創建的,因此它們包含一堆模板代碼 - 您提供的代碼,應該放在DetailView按鈕在哪裏? – pepe

+0

上面的代碼會在您準備提供評論按鈕的控制器中使用segue方法。我認爲你想在按下評論按鈕後推送一個評論的桌面視圖。當按下按鈕時,您將使用正確的segue名稱調用帶標識符的segue。此外,請確保在故事板中將新控制器分配給對象檢查器中的tableview控制器。然後在準備segue時,您可以傳入實際評論或某種類型的標識符,以便您可以獲得該項目的實際評論。 – CocoaEv

+0

這是非常有幫助的@cocoaev - 到目前爲止,我已經設置了所有東西,沒有錯誤 - 我已經添加了來自'CommentViewController的代碼。m'在OP中 - 沒有錯誤,但表仍然顯示爲空白,如果數據未被傳遞 - 「NSLog」也不會輸出任何內容 - 缺少什麼? – pepe

相關問題