我正在尝试将 UIImage 从一个 Viewcontroller 传递到另一个 Viewcontroller,方法与我传递 NSString 的方式相同,但在图像的情况下,它在第二个 Controller 中获得 nil 值。我使用 imagepickercontroller 从第一个 Controller 中的图库中选择图像。 这是 InfoViewcontroller.h-
#import <UIKit/UIKit.h>
@interface InfoViewController : UIViewController
@property(strong,nonatomic) UIImagePickerController *imagepicker;
@property(strong,nonatomic) UIImage *image1;
@end
这是InfoViewcontroller.m-
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
NSData *data=UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"], 1);
image1=[[UIImage alloc]initWithData:data];
//[imgview1 setImage:image1];
[imagepicker dismissViewControllerAnimated:YES completion:nil];
[self performSegueWithIdentifier:@"tocrop" sender:self];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"toimage"]) {
ThirdViewController *destViewController = segue.destinationViewController;
destViewController.image2 =image1;}
}
这是ThirdViewController.h-
#import <UIKit/UIKit.h>
@interface ThirdViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIImageView *imgview2;
@property (strong,nonatomic) UIImage *image2;
@end
这是ThirdViewController.m-
-(void)viewDidLoad {
[super viewDidLoad];
//if(image2==nil) NSLog(@"abab");
[imgview2 setImage:image2];
}
为什么我得到的是零?
最佳答案
在这里
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
NSData *data=UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"], 1);
image1=[[UIImage alloc]initWithData:data];
//[imgview1 setImage:image1];
[imagepicker dismissViewControllerAnimated:YES completion:nil];
[self performSegueWithIdentifier:@"tocrop" sender:self];
}
你正在使用“ToCrop”执行 segue,在这里你检查 toimage
if ([segue.identifier isEqualToString:@"toimage"])
我认为应该是 if ([segue.identifier isEqualToString:@"tocrop"])
并且还使用 self.image1=[[UIImage alloc]initWithData:data];
关于ios - 将 UIImage 从一个 Viewcontroller 传递到另一个 Viewcontroller 得到 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32245405/