I read much posts about this question but I don't found any answers..
so, I want to pass from my "ViewController" to my "SecondViewController" an image picked from ImagePicker, this is what I tried:
In my ViewController:
 -(IBAction)Scatta:(id)sender {
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
        {
            [imagePickerController setSourceType:UIImagePickerControllerSourceTypeCamera];
        }
        // image picker needs a delegate
        [imagePickerController setDelegate:self];
        // Place image picker on the screen
        [self presentViewController:imagePickerController animated:YES completion:nil];   
        // Create main view controller
        Main_VCViewController *VC = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"];
        // Go to main
        [self presentModalViewController:VC animated:YES];  
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
       [self dismissViewControllerAnimated:YES completion:^{
          UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
          Main_VCViewController *VC = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"];
          VC.ImmaginePresa = image;
       [self presentModalViewController:VC animated:YES];
    }]; 
}
and this is my SecondViewController :
-(void)viewDidAppear:(BOOL)animated {
    UIImage *imm = _ImmaginePresa;
    [_Image setImage: imm];
}
I set a default image in my SecondVC and when I launch the app I press the "Scatta" button and when it opens my SecondVC it shows me for 0.5/1 second my default image, and after that, it shows nothing. I tried to pass in the same way some strings and it works correctly.
EDIT1
ViewController:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
   UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage];
     //Instanzio il viewController della main
   Main_VCViewController *VC = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"];
    NSData *imageData = UIImagePNGRepresentation(img.images);
    [[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:imageData] forKey:@"ImageData"];
    VC.ImmaginePresa = img;
    [self dismissModalViewControllerAnimated:YES];
     //Vado alla main
   [self presentModalViewController:VC animated:YES];
}
SecondVC:
-(void)viewDidAppear:(BOOL)animated {
    NSData* myEncodedImageData =[[NSUserDefaults  standardUserDefaults]objectForKey:@"ImageData"];
    UIImage* image = [UIImage imageWithData:myEncodedImageData];
    [_Image setImage: image];
}
It still doesn't work, same result
EDIT2
With @SaurabhPrajapati 's solution it seems like the image is nil, because when i click on my image it doesn't do anything is it possible?
 
    