Я довольно новичок в iOS, и подумал, что я понимаю передачу данных в контроллер вида. Очевидно нет. Я пытаюсь передать данные изображения из родительского ViewController в дочерний ViewController, который представлен модально. Я думаю, что проблема связана с тем, как объекты передаются в модно представленный контроллер представлений, а не один, надвигаемый в стек навигации. Bellow - это код родителя и ребенка, связанный с проблемами, которые у меня возникают.Передача данных в контроллер просмотра различна, когда контроллер представлен модально?
От 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;
Это мой Child.m:
-(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;
}
я импортировал своего ребенка в мой родительский класс
Возможный дубликат [Как передать информацию между раскадрой segues?] (Http://stackoverflow.com/questions/8597025/how-do-i-pass-information-between-storyboard-segues) –
Попробуйте переносить изображение в делегате приложения и назначить изображение в контроллере детского представления в режиме viewwillapper –