У меня есть сложный проект (я его не писал). Мне пришлось добавить новый экран перед первым экраном в раскадровке. В приложении Делегат они жестко запрограммировали получение Контроля просмотра из раскадровки. Моя попытка перезаписать этот код падает.instantiateViewControllerWithIdentifier с раскадрой
Оригинальный код (AppDelegate.m):
UINavigationController *favoriteMealsNavigationController = [[tabBarController viewControllers] objectAtIndex:1];
FavoriteMealsViewController *favoriteMealsViewController = [[favoriteMealsNavigationController viewControllers] objectAtIndex:0];
[favoriteMealsViewController setManagedObjectContext:[self managedObjectContext]];
Моя попытка:
FavoriteMealsViewController *favoriteMealsViewController = (FavoriteMealsViewController *)[self.mainStoryboard instantiateViewControllerWithIdentifier:@"mealsScene"];
//crashes here:
[favoriteMealsViewController setManagedObjectContext:[self managedObjectContext]];
Сообщение об ошибке: [UINavigationController setManagedObjectContext]: непризнанные селектор направлен например 0x17d7bfe0 *** нагрузочного app из-за неотображенного исключения «NSInvalidArgumentException», причина: '- [UINavigationController setManagedObjectContext:]: непризнанный селектор, отправленный в экземпляр
* favoriteMealsViewController не является нулевым self.managedObjectContext не является нулевым
Это код в FavoriteMealsViewController.h
@interface FavoriteMealsViewController : UIViewController <NSFetchedResultsControllerDelegate, UIActionSheetDelegate, MealAddDelegate>
/** The managed object context associated with the Core Data Model. */
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@end
Это уместный код в FavoriteMealsViewController.h:
@synthesize managedObjectContext = _managedObjectContext;
Ваш взгляд на раскадровку называется «mealScene»? вы задали это имя? – ErasmoOliveira
Сообщение об ошибке предполагает, что вы создаете экземпляр 'UINavigationController', а не' FavoriteMealsViewController'. –