[英]UIImage and prepareforSegue not able to pass the image
這是我的代碼:
@property (weak, nonatomic) IBOutlet UIImageView *chosedImage;
- (IBAction)cropImageTap:(id)sender {
[self dismissViewControllerAnimated:YES completion:^{
UIImage * pickedImage = self->_chosedImage;
//[UIImage imageNamed:@"helloWorld.jpg"];
[self performSegueWithIdentifier:@"gotomainimage" sender:pickedImage];
}];
}
我的表演賽如下:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
PostVC *vc = (PostVC*)segue.destinationViewController;
UIImage *img = (UIImage*)sender;
if (img.images == nil) {
NSLog(@"null img");
vc.Sourcemage = img;
}
else {
NSLog(@"not null img");
vc.Sourcemage = img;
}
}
我只得到空圖像。我的圖像不來。我在這里做什么問題?
請幫幫我
更新 :
我更新的代碼,工作方式-給我控制台信息,例如:
其null數據-將vc發布為非null圖像-prepareForSegue方法
無法找出為什么會發生。
- (IBAction)cropImageTap:(id)sender {
UIImageView * pickedImage = _chosedImage;
[self dismissViewControllerAnimated:YES completion:^{
[self performSegueWithIdentifier:@"gotomainimage" sender:pickedImage.image];
}];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
PostVC *vc = (PostVC*)segue.destinationViewController;
UIImage *img = (UIImage*)sender;
if (img != nil) {
NSLog(@"its not an null image");
vc.Sourcemage = img;
} else {
NSLog(@"its an null image");
}
}
in my postvc :
@property(nonatomic) UIImage *Sourcemage;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (self.Sourcemage != nil){
NSLog(@"not null dataa");
_PostImageView.image = _Sourcemage;
} else {
NSLog(@"not null dataa");
_PostImageView.image = [UIImage imageNamed:@"Travel.png"];
}
}
目標viewcontroller(PostVC)中的變量Sourcemage是UIImage嗎?
請檢查該屬性是否為UIImage。
這是因為您正在傳遞UIImageView
而不是UIImage
如下更新代碼,
UIImageView * pickedImage = _chosedImage;
[self dismissViewControllerAnimated:YES completion:^{
[self performSegueWithIdentifier:@"gotomainimage" sender:pickedImage.image];
}];
在上面的代碼中,您必須傳遞UIImage
而不是UIImageView
本身,並像這樣處理它,
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
PostVC *vc = (PostVC*)segue.destinationViewController;
UIImage *img = (UIImage*)sender;
vc.Sourcemage = img;
}
你為什么不這樣做呢?
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
PostVC *vc = (PostVC*)segue.destinationViewController;
vc.Sourcemage = _checkedImage;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.