Я начал работать в проекте, который уже был запущен в ObjectiveC и без раскадровки.Я делаю новые разделы в Swift и со Storyboard, но теперь у меня возникла проблема, когда я пытаюсь передать информацию (UIImage) в контроллеры моей раскадровки.Вот как я перехожу к ViewControllers:
-(void)expenseCamera:(VOCCustomCameraVC *)camera didFinishPickImage:(UIImage *)
image imageCreated:(NSString *)imageCreated
fileName:(NSString *)fileName {
[camera dismissViewControllerAnimated: YES completion: nil];
UIStoryboard *addExpenseStoryboard = [UIStoryboard
storyboardWithName:@"addExpense" bundle:nil];
CreateExpenseVC *createExpenseVC = [addExpenseStoryboard
instantiateViewControllerWithIdentifier:@"expenseNavController"];
UIImage *compressedImage = [UIImage compressImage: image];
createExpenseVC.expenseImage = compressedImage; // It crashes here
//createExpenseVC.delegate = self;
[self presentViewController: createExpenseVC animated: YES completion: nil];
CFRunLoopWakeUp(CFRunLoopGetCurrent());
}
Если я вынимаю createExpenseVC.expenseImage = compressedImage
, все идет хорошо, но когда я пытаюсь передать изображение, я получаю эту ошибку:
SIGABRT *** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[YourApp.CustomNavController setExpenseImage:]: unrecognized selector
sent to instance 0x12e09b200'
Назначение viewController начинается следующим образом
@objcMembers class CreateExpenseVC: UIViewController {
/* ---- IBOutlets ---- */
@IBOutlet weak var containerView: UIView!
@IBOutlet weak var backButton: UIBarButtonItem!
@objc var expenseImage: UIImage?
И в контейнере ViewView я показываю другой viewController, где я притворяюсь, что показываю изображение.
Я пытался изменить код, который я использую для навигации поthis
CreateExpenseVC * createExpenseVC = [[CreateExpenseVC alloc] init];
Но также происходит сбой, потому что (я думаю) это не создание экземпляра раскадровки и, следовательно, не распознавание всех IBOutlets и т. д. ...
Так как я могу передать информацию, напримерэто?
Большое спасибо заранее