Я новичок в iOS и подумал, что понял передачу данных в контроллер представления. Очевидно нет. Я пытаюсь передать данные изображения из родительского ViewController в дочерний ViewController, который представлен модально. Я думаю, что проблема связана с тем, как объекты передаются модально представленному контроллеру представления вместо того, чтобы помещаться в стек навигации. Ниже приведен код от родителя и дочернего элемента, связанный с проблемами, с которыми я сталкиваюсь.
От Parent.m:
- (IBAction)sort:(id)sender {
SortSelectViewController *ssvc = [self.storyboard instantiateViewControllerWithIdentifier:@"sort"];
ssvc.backgroundImage = [self screenshot];
[self performSegueWithIdentifier:@"sort" sender:self];
//The segue is linked from my parent view controller to my child with the identifier "sort"
}
- (UIImage *) screenshot {
CGRect rect = CGRectMake(0, 20, 640, 1116);
UIGraphicsBeginImageContextWithOptions(rect.size, NO, [UIScreen mainScreen].scale);
[self.view drawViewHierarchyInRect:rect afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
return image;
}
Это в моем Child.h
@property (nonatomic, strong) UIImage *backgroundImage;
Это мой ребенок.м:
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSLog(@"%@", self.backgroundImage);
//This log will return nil when the program is run - clear sign data is not being correctly passed
self.backgroundImage = [self.backgroundImage applyDarkEffect];
self.imageView.image = self.backgroundImage;
}
Я импортировал свой дочерний контроллер представления в родительский класс.