0

UICollectionViewを使用して一連のブログ投稿を表示するアプリを作成しています。

ユーザーが投稿をタップすると、DetailViewがプッシュされて投稿のコンテンツが表示されます。

詳細ビュー内には、投稿画像やテキストなどが表示されます。コメントを表示するボタンもあります。

ユーザーがcommentsボタンをタップして、その投稿に書き込まれたすべてのコメントを表示するUITableViewをロードできるようにしたいと思います。これは私が実装できない部分です。

Interface BuilderでUITableViewを作成し、セグエを使用して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
4

1 に答える 1

2

UITableViewのコントローラーを作成しましたか?

設計目標を正しく理解していない可能性があるため、これが基本的な答えのように思われる場合は申し訳ありませんが、シーケンスを実行している場合は、テーブルビューコントローラを初期化し、何らかの方法でデータソースを設定する必要があります。

たとえば、セグエの準備では、次のようなものが必要です。

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

カスタムテーブルビューコントローラでは、コメント配列を保持するNSArrayプロパティを作成し、標準の手順に従ってテーブルビューを設定できます。または、ロジックを使用して適切なコメントを取得し、新しいテーブルビューのテーブルビューデータソースをロードします。初期化すると、渡したデータが含まれ、テーブルビューデリゲートメソッドとデータソースメソッドを使用した標準のテーブルビューと同じように動作するはずです。

それは役に立ちますか?そう願っています。

于 2012-11-23T03:44:24.400 に答える