2015-03-02 2 views
0

У меня есть сложный проект (я его не писал). Мне пришлось добавить новый экран перед первым экраном в раскадровке. В приложении Делегат они жестко запрограммировали получение Контроля просмотра из раскадровки. Моя попытка перезаписать этот код падает.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; 
+0

Ваш взгляд на раскадровку называется «mealScene»? вы задали это имя? – ErasmoOliveira

+1

Сообщение об ошибке предполагает, что вы создаете экземпляр 'UINavigationController', а не' FavoriteMealsViewController'. –

ответ

0

Это означает, что ваша попытка создать экземпляр FavoriteMealsViewController с помощью этого идентификатора: @ "mealScene" на самом деле создает экземпляр UINavigationContro вместо этого. Перейдите на свою раскадровку и убедитесь, что идентификатор, который вы используете, предназначен для FavoriteMealsViewController, а не для навигационного контроллера, и он должен работать.