0

我试图在 UIViewController 中发表评论 UITableView 但我遇到了问题。如果我直接设置文本,它会显示(cell.username.text),但如果我尝试用 PFQuery(parse.com)填充它,什么都不会显示

    //DetailViewController.h    
    #import <UIKit/UIKit.h>
    #import <Parse/Parse.h>

    @interface DetailViewController : UIViewController{

    }

    @property (strong, nonatomic) PFObject *place;
    @property (strong, nonatomic) IBOutlet PFImageView *userPhoto;
    @property (strong, nonatomic) IBOutlet UILabel *username;
    @property (strong, nonatomic) IBOutlet UILabel *message;
    @property (strong, nonatomic) IBOutlet UILabel *distance;
    @property (strong, nonatomic) IBOutlet UILabel *checkCount;
    @property (strong, nonatomic) IBOutlet PFImageView *photo;
    @property (strong, nonatomic) IBOutlet UIScrollView *scroller;
    @property (strong, nonatomic) IBOutlet UITableView *commentsTableView;

    - (IBAction)checkMarkButton:(UIButton *)sender;


    @end

//DetailViewController.m
#import "DetailViewController.h"
#import "CommentsViewController.h"

@interface DetailViewController (){

    CommentsViewController *test;
}

@end

@implementation DetailViewController

@synthesize place;
@synthesize userPhoto, message, username, checkCount, photo, scroller, commentsTableView;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization

    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    test = [[CommentsViewController alloc] init];
    self.commentsTableView.delegate = test;
    self.commentsTableView.dataSource = test;

    [test commentsQuery:place];
}

//CommentsViewController.h
#import <Parse/Parse.h>

@interface CommentsViewController : UITableViewController{

}

@property (strong, nonatomic) PFObject *place;

- (void)commentsQuery:(PFObject *)object;

@end

//CommentsViewController.m
#import "CommentsViewController.h"
#import "DetailViewController.h"
#import "CommentsCell.h"

@interface CommentsViewController (){
    NSArray *commentsArray;
}



@end

@implementation CommentsViewController

@synthesize place;



- (void)commentsQuery:(PFObject *)object {

    place = object;

    PFQuery *query1 = [PFQuery queryWithClassName:@"activity"];
    [query1 whereKey:@"type" equalTo:@"comment"];
    [query1 whereKey:@"place" equalTo:place];
    [query1 orderByDescending:@"createdAt"];
    [query1 findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if (!error){
            commentsArray = [[NSArray alloc]initWithArray:objects];
            NSLog(@"%lu", (unsigned long)[commentsArray count]);
        }
    }];

}






-  (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [commentsArray count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    static NSString *CellIdentifier = @"Cell";
    CommentsCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if (cell == nil) {
        cell = [[CommentsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    PFObject *tempObj = [commentsArray objectAtIndex:indexPath.row];

    cell.username.text = @"username";
    cell.comment.text = [tempObj objectForKey:@"content"];
    cell.userThumbnail.file = [tempObj objectForKey:@"userThumbnail"];
    [cell.userThumbnail loadInBackground];



    return cell;
}
@end
4

1 回答 1

0

我的问题是调用 reloadData。我按照这里的答案,解析后它在一个单独的类中工作 UITableView 委托和数据源

于 2013-09-22T21:36:20.167 回答