これは私がParseフォーラムで尋ねた質問であり、過去3日間彼らからの返信はありません。したがって、私はここに投稿しています。
やあ、
PFQueryTableViewControllerがあり、テーブルには画像と異なるラベルを持つカスタムセルがあります。このテーブルは、行を選択すると別のDetailViewControllerに移動します。DetailViewControllerは、ビューに画像を表示する必要があります。この画像は、PFQueryTableViewControllerのParseデータベースへのクエリから取得します。どうすればそれを達成できますか?
TABLEVIEWCONTROLLER.M
@interface TableViewController ()
@end
NSMutableArray* detailObjects;
DetObj* clickedObj;
@implementation TableViewController
- (void)objectsDidLoad:(NSError *)error {
[super objectsDidLoad:error];
// This method is called every time objects are loaded from Parse via the PFQuery
for (PFObject* object in self.objects)
{
DetailObj* obj = [[DetailObj alloc ] init ];
[obj setDetName:[object objectForKey:@"detName"]];
[mov setDetImage:[object objectForKey:@"detImage"]];
[detailObjects addObject:obj];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
{
static NSString *CellIdentifier = @"upCell";
customBigTableCell *cell = (customBigTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[customBigTableCell alloc] init];
}
cell.name.text = [object objectForKey:@"detName"];
cell.image.file = [object objectForKey:@"detImage"];
//this is essential for loading the image from the database
[cell.image loadInBackground];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[super tableView:tableView didSelectRowAtIndexPath:indexPath];
UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
newDetailController* newController = [storyboard instantiateViewControllerWithIdentifier:@"Detail"];
clickedObj = [[DetObj alloc] init];
NSIndexPath* path = [self.tableView indexPathForSelectedRow];
clickedObj = [detailObjects objectAtIndex:path.row];
[newController setDetInfo:clickedObj];
[[self navigationController] pushViewController:newController animated:YES];
}
下記のDetailViewControllerで説明されているようにPFImageViewを使用してみました。detailInfoは、前のPFQueryTableViewControllerから渡されたオブジェクトです。
newDetailController.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
PFImageView* detImage = [[PFImageView alloc] initWithFrame:CGRectMake(300,0,320,150)];
PFFile* file = detailInfo.fullImage.file;
detImage.file = file;
[detImage loadInBackground];
[self.view addSubview:detImage];
}
しかし、私にはこのエラーがあります。
reason: '-[PFFile file]: unrecognized selector sent to instance
以前のコントローラーで既に取得した情報を取得するために、データベースに再度クエリを実行したくありません。
アンドリューありがとう