如何从DetailView中推送UITableView?

时间:2012-11-23 03:32:44

标签: iphone objective-c ios uitableview ios5

我正在构建一个使用UICollectionView显示一系列博客文章的应用程序。

当用户点按帖子时,会推送DetailView以显示帖子的内容。

在详情视图中,可以看到帖子图片,文字等。还有一个显示评论的按钮。

我希望用户能够点击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);
}

CommentViewController.h

#import <UIKit/UIKit.h>

@interface CommentViewController : UITableViewController {
    NSArray *commentArray;
}

@property (strong, nonatomic) id commentArray;

@end

1 个答案:

答案 0 :(得分:2)

你为你的UITableView创建了一个控制器吗?

我可能无法正确理解您的设计目标,如果这看起来像是一个基本答案,那就很抱歉,但如果您正在执行seque,那么您应该初始化tableview控制器并以某种方式设置数据源。

例如,在准备segue时,你应该有这样的东西:

CommentsControllerView *myTableView = segue.destinationViewController;
myTableView.commentsArray = self.commentsArray;
myTableView.itemId = self.itemId;

在自定义tableview控制器中,您可以创建一个NSArray属性来保存comments数组并按照标准过程设置tableview。或者您将使用一些逻辑来检索相应的注释并为新的tableview加载tableview数据源。初始化时,它将包含您传递它的数据,然后它应该像使用tableview委托和数据源方法的标准tableview一样运行。

这有帮助吗?希望如此。