簡體   English   中英

UIImage和prepareforSegue無法傳遞圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM