【问题标题】:Wrong Size-Class of UIViewController shown with UIPopoverController使用 UIPopoverController 显示的 UIViewController 的 Size-Class 错误
【发布时间】: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


    【解决方案1】:

    在弹出视图控制器上使用 setOverrideTraitCollection 应该允许您在 iPad 上使用常规 x 常规。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多