私はこれに困惑しています。転送され、クラスのパブリック プロパティにある画像ファイルを使用しています。ログ ファイルは、self.image と newImage がまだ UIImage ファイルを指していることを示しています。ただし、どのように initWithImage をセットアップしても、self.imageView.image の値は (null) になります。
注 : imageView は合成されたプライベート クラス プロパティです。
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.frame = (CGRect){.origin=CGPointMake(0.0f, 0.0f), .size=self.image.size};
UIImage *newImage = self.image;
self.imageView = [[UIImageView alloc] initWithImage:newImage];
[self.imageView setFrame: (CGRect){.origin=CGPointMake(0.0f, 0.0f), .size=self.image.size}];
[self.scrollView addSubview:self.imageView];
self.scrollView.contentSize = self.image.size;
NSLog(@"Image in self.image : %@ Image for imageView %@ and new Image is : %@", self.image, self.imageView.image, newImage);
self.image が最初のビュー コントローラーから取得される場所:
-(void)imagePickerController:
(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType =
[info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage])
{
self.imageToBePassed = [info objectForKey:UIImagePickerControllerOriginalImage];
[picker dismissViewControllerAnimated:NO completion:^(){
AngleMeasureViewController *angleMeasureViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"AngleMeasureViewController"];
angleMeasureViewController.delegate = (id)self;
angleMeasureViewController.image = self.imageToBePassed;
NSLog(@"image passed to Angle Measure View Controller : %@", angleMeasureViewController.image);
[self.navigationController pushViewController:angleMeasureViewController animated:YES];
}];
}
次のView Controllerで合成されたと宣言する方法:
ヘッダーファイルで
@property (nonatomic,retain) UIImage *image;
.m で
@implementation AngleMeasureViewController
@synthesize delegate = _delegate;
@synthesize image = _image;