我正在构建一个使用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
答案 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一样运行。
这有帮助吗?希望如此。