【发布时间】:2015-03-17 16:51:34
【问题描述】:
我正在开发带有通用情节提要的通用 iPhone/iPad 应用程序。对于某些 ViewController,如果它们在 iPad 上具有某些特定布局,我会使用尺寸类。
我有一个 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 Class 的情节提要上做了一些更改,但在 iPad 上的 UIPopoverController 仍然显示 iPhone 布局。这是因为弹出框的大小低于 iPad 屏幕。我可以在带有 Size Classes 的 Interface Builder 中进行更改,以在 iPad 上的弹出窗口中显示它们,但在 iPhone 上忽略它们吗?
【问题讨论】:
标签: ios objective-c ipad uipopovercontroller size-classes