Я получаю ошибку вида:ошибка Раскадровка не содержит контроллер с идентификатором
Нагрузочного приложение из-за неперехваченное исключением «NSInvalidArgumentException», причина: «раскадровка() не содержит вид контроллер с идентификатором 'SBMenu'»
На мой AppDelegate, я проверяю, если пользователь подключен и запуск:
- контроллер вида с идентификатором раскадровка «SBLogin», если пользователь не подключен
- или контроллер Разделить с раскадровки идентификатором «SBMenu», если пользователь уже подключен
Я использую Xcode 6.1.1 , sdk 8.1, цель развертывания 7.0
На эмуляторе iOS 8.1 все нормально, и я не получаю ошибку.
На эмуляторе прошивкой 7.0.3 или 7.1, я получаю ошибку
код:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//...
if(self.token != nil){
//crash
self.viewController = (UIViewController *)[mainSB instantiateViewControllerWithIdentifier:@"SBMenu"];
}else{
//don't crash
self.viewController = (UIViewController *)[mainSB instantiateViewControllerWithIdentifier:@"SBLogin"];
}
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
[self.window setRootViewController:self.viewController];
[self.window setBackgroundColor:[UIColor whiteColor]];
[self.window makeKeyAndVisible];
return YES;
}
Я уже проверил советы нашли на другой пост:
- только одна история доска
- только «база» в локализации
- раскадровка Идентификатор правильно установлен
- тестов удалить приложение из тренажера, прежде чем строить
- чистого проект
Можете ли вы показать свой код, который создает экземпляр 'mainSB'? И что показано в разделе «Основной интерфейс» в «Информация о развертывании» вашей целевой аудитории? (Кроме того, чтобы проверить идентификатор «SBMenu» контроллера вида в Interface Builder, попробуйте удалить идентификатор и снова ввести его, в том числе ударить return и перестроить ...) –
Оттуда документы: «Строка идентификатора, которая уникально идентифицирует контроллер представления в файле раскадровки. Вы устанавливаете идентификатор для данного контроллера представления в Interface Builder при настройке файла раскадровки.Этот идентификатор не является свойством самого объекта контроллера представления и используется только файлом раскадровки для поиска контроллера представления. «Вы установили идентификатор« SBMenu »в viewController? – zaph
@MattGibson-код, который создает экземпляр mainSB: UIStoryboard * mainSB = [UIStoryboard storyboardWithName: @ «Main» bundle: nil]; в разделе «Основной интерфейс»: поле пусто, когда я устанавливаю его в Main, я получаю «Не удалось создать экземпляр контроллера по умолчанию для UIMainStoryboardFile« Main »- возможно, назначенная точка входа не установлена? »-> точка входа не установлена, потому что я хочу ее выбрать. –