Я работаю над универсальным приложением iPhone/iPad с универсальной раскадровкой. Для некоторых ViewControllers я использую классы размера, если у них есть определенный макет на iPad.Неверный размер-класс UIViewController, показанный с UIPopoverController
У меня есть один ViewController, который должен быть представлен на iPhone, но на iPad он должен отображаться в UIPopoverController.
UINavigationController *navigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"ComposeMessageNavigationController"];
ComposeMessageViewController *viewController = (ComposeMessageViewController *)navigationController.topViewController;
//Prepeare my view controlller
...
if (IS_IPAD) {
UIPopoverController * popover = [[UIPopoverController alloc] initWithContentViewController:navigationController];
CGSize screenSize = [UIScreen mainScreen].bounds.size;
CGRect popoverFrame = CGRectMake(screenSize.width/2, screenSize.height/2, 1, 1);
[popover presentPopoverFromRect:popoverFrame inView:self.view permittedArrowDirections:0 animated:YES];
} else {
[self presentViewController:navigationController animated:YES completion:^{
}];
}
Это работает очень хорошо, но есть проблемы с классами размеров. Я внес некоторые изменения в раскадровку в классе wRegular/hRegular Size, но на iPad в UIPopoverController все еще отображается макет iPhone. Это из-за размера popover ниже, чем iPad. Могу ли я внести изменения в Interface Builder с классами размера, чтобы показать их в popover на iPad, но игнорировать на iPhone?