目前我有 2 个视图控制器,我从视图控制器 A 中选择一张照片并将图像 url 传递给第二个视图控制器 B 并使用该 url 检索从 A 中选择的图像。但是问题是可以在 viewDidLoad 检索图像但是无法在表 viewcellForRowAtIndexPath 检索。我不确定根本原因是什么有人可以帮助我吗?
//是
(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
// Initialize View Controller B
B *b = [[B alloc]initWithNibName:@"PhotosListViewController" bundle:nil];
// get the ref url
NSURL *imageURL = [info valueForKey:UIImagePickerControllerReferenceURL];
photoListViewController.test = imageURL;
NSLog(@"%@",imageURL);
[picker dismissViewControllerAnimated:YES completion:nil];
[self.navigationController pushViewController:photoListViewController animated:YES];
}
- (IBAction)organiseAttachement:(id)sender {
// Initialize View Controller
B *b = [[PhotosListViewController alloc]initWithNibName:@"B" bundle:nil];
[self.navigationController pushViewController:b animated:YES];
}
//Bh
#import <UIKit/UIKit.h>
@interface PhotosListViewController : UITableViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
@property (nonatomic, strong) NSURL *test;
@end
//Bm
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"Image is THIS --- %@",test);
// define the block to call when we get the asset based on the url (below)
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *imageAsset)
{
ALAssetRepresentation *imageRep = [imageAsset defaultRepresentation];
CGImageRef iref = [imageRep fullResolutionImage];
if (iref) {
self.galleryImage = [UIImage imageWithCGImage:iref];
}
[self.tableView reloadData];
NSLog(@"[imageRep filename] : %@", [imageRep filename]);
NSLog(@"[imageRep image] : %@", galleryImage);
};
// get the asset library and fetch the asset based on the ref url (pass in block above)
ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];
[assetslibrary assetForURL:test resultBlock:resultblock failureBlock:nil]
}
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.imageView.image = self.galleryImage;
return cell;
}