当提出一个actionSheet(AlertController)时,如何修复PopoverViewController的边界?

时间:2014-08-20 07:21:20

标签: ios objective-c ios8 uialertcontroller

当ViewController通过UIPopoverPresentationController以iOS 8方式呈现actionSheet(AlertController)时,ViewController将其边界缩小为actionSheet的大小。

我尝试做的是在popover上显示一个actionSheet,但我是以iOS 8的方式进行的,我得到了这种情况。

这就是我遇到这种情况的方式"

  1. 当按下barButtonItem时,它会通过UIPopoverPresentationController弹出ViewController。 (如图1所示)
  2. 当按下ViewController上的按钮时,它会显示一个actionSheet
  3. 然后,ViewController将其大小缩小为actionSheet的大小。 (如图2所示)
  4. 以下是整个项目供参考。 https://github.com/allenlinli/ALtryEverything/tree/Q435235 它在项目中#14; TryAlertOnPopoverOnBarButtonItemOniPad"。

    enter image description here

    enter image description here

1 个答案:

答案 0 :(得分:3)

只需在ViewController.m

中使用preferredContentSize作为navigationController 像这样:

- (void)action:(id)sender
{
    // ....
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:historyViewController];
    navigationController.modalPresentationStyle = UIModalPresentationPopover;
    navigationController.preferredContentSize =CGSizeMake(320, 480);
    // ...
}

布局子视图控制器的任何容器视图的首选内容大小。

参考:Apple UIViewController