UIImage и подготовить для передачи не удалось передать изображение - PullRequest
0 голосов
/ 24 мая 2018

Вот мой код:

@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;
        }

    }

Я получаю только нулевое изображение. Мое изображение не приходит. Что за проблема, яздесь?

Пожалуйста, помогите мне

ОБНОВЛЕНО:

Мой обновленный код, работает как - давая мне консольное сообщение вроде:

его нулевые данныеa -post vc - это не пустое изображение - метод 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"];
        }


    }

Ответы [ 3 ]

0 голосов
/ 24 мая 2018

Это потому, что вы передаете 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;
}
0 голосов
/ 24 мая 2018

Почему бы тебе просто так не сделать?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    PostVC *vc = (PostVC*)segue.destinationViewController;
    vc.Sourcemage = _checkedImage;
}
0 голосов
/ 24 мая 2018

Является ли переменная Sourcemage в вашем оконечном контроллере назначения (PostVC) UIImage?

Проверьте, является ли свойство UIImage или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...