Я создал приложение tabBar с ARC. Таким образом, настройка по умолчанию автоматически обеспечит 2 viewControllers;Как связать созданные вручную ViewControllers в приложении TabBar
1) FirstViewController.h, FirstViewController.m; FirstViewController_iPhone.xib, FirstViewController_iPad.xib
2) SecondViewController.h, SecondViewController.m, SecondViewController_iPhone.xib, SecondViewController_iPad.xib
Я хотел создать новый контроллер просмотра ViewController3, но во время процесса создания файла я могу выбрать только для iPad или iPhone (флажок «Целевое для iPad»). Мне нужны iPhone и iPad xibs, как и FirstViewController и SecondViewControllers, созданные для меня. Поэтому я решил вручную создать xib и продолжил создание файла без xib.
Так что, естественно, после этого я продолжил вручную создавать 2 новости xibs; ThirdViewController_iPhone.xib и ThirdViewController_iPad.xib
я добавил эту строку в исходный файл AppDelegeate:
UIViewController *viewController1, *viewController2, *viewController3;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil];
viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil];
viewController3 = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController_iPhone" bundle:nil];
} else {
viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPad" bundle:nil];
viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPad" bundle:nil];
viewController3 = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController_iPad" bundle:nil];
}
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, viewController3, nil];
я запустить проект и получил это: терминальность приложения из-за неперехваченное исключение «NSInternalInconsistencyException», причина: " - [UIViewController _loadViewFromNibNamed: bundle:] загрузил нить «ThirdViewController_iPhone», но выходная точка просмотра не была установлена ».
Как установить розетку?
Вам нужно подключить вид до владельца файла в xibs –
я нажал на владельца файла из созданных вручную xibs. Затем я использовал свойство класса (где-то рядом с панелью инспекторов), чтобы ввести имя viewcontroller в качестве класса ... Еще не успел ... –
'ctrl' +' drag' от 'File's Owner' до' view ', то из HUD выберите' view' - это то, что я имел в виду ранее –