Я обновляю приложение до универсального.У меня есть набор перьев для отображения контроллера представления (назовем его DetailViewController, характерного для iPhone и iPad.
Поскольку я поддерживаю устройства с
Чтобы проверить это постепенно, у меня есть метод, чтобы сделать тест:
- (BOOL)loadNibFileForIdiom
{NSArray * topLevelObjs = nil;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
topLevelObjs = [[NSBundle mainBundle] loadNibNamed:@"DetailViewController~iPad" owner:self options:nil];
if (topLevelObjs == nil)
{
NSLog(@"Error! Could not load myNib file.\n");
return NO;
}
return YES;
}
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
topLevelObjs = [[NSBundle mainBundle] loadNibNamed:@"DetailViewController" owner:self options:nil];
if (topLevelObjs == nil)
{
NSLog(@"Error! Could not load myNib file.\n");
return NO;
}
return YES;
}
return NO;
}
Как я уже сказал, это прекрасно работает, когда методвызывается в viewWillAppear подробного контроллера, и этот контроллер представления выталкивается из контроллера табличного представления, который фактически вызывается из элемента панели вкладок.Обратите внимание, что ChartViewController также является первым элементом на панели вкладок.
Для загрузки альтернативных перьев при вызове из таблицы или диаграммы я попытался добавить условные тесты в этот метод, обернутый вокругкод выше, таким образом:
if (self.parentViewController == TableViewController) { ... do idiom tests and load appropriate nib for DetailViewController or DetailViewController~iPad nib }
и
if (self.parentViewController == ChartViewController) { ... do idiom tests and load appropriate nib for DetailViewController2 or DetailViewController2~iPad nib }
... но при выполнении этих тестов, для которых контроллер представления был вытолкнут из контроллера детали, они не оцениваются как истинные, иидиомные тесты не запускаются, и поэтому кончики не загружены.
Что я могу делать неправильно или как эффективно определить контроллер, который вызвал детальный контроллер, чтобы я мог загрузить правильные кончики?