Popover不会尊重首选尺寸

时间:2014-09-23 16:52:44

标签: ipad ios8 uistoryboard uipopovercontroller uistoryboardsegue

我的iPad故事板中有一个popover segue。弹出窗口包含一个Nav Controller,它包含我的View Controller。我在View Controller中设置了preferredContentSize,并尝试在我的View Controller中设置导航控制器的preferredContentSize。然而,popover仍然填满了屏幕。我甚至尝试了已弃用的self.contentSizeForViewInPopover,但这也无效。我试过-awakeFromNib-viewDidLoad

我做错了什么?

- (void) awakeFromNib {
    [super awakeFromNib];

    self.preferredContentSize = CGSizeMake(500.0, 600.0);
    self.navigationController.preferredContentSize = self.preferredContentSize;

    self.contentSizeForViewInPopover = self.preferredContentSize;
    self.navigationController.contentSizeForViewInPopover = self.preferredContentSize;

}

- (void)viewDidLoad {
    [super viewDidLoad];

    self.preferredContentSize = CGSizeMake(500.0, 600.0);
    self.navigationController.preferredContentSize = self.preferredContentSize;

    self.contentSizeForViewInPopover = self.preferredContentSize;
    self.navigationController.contentSizeForViewInPopover = self.preferredContentSize;
}

1 个答案:

答案 0 :(得分:1)

在iOS7中我只使用"假的" preferedContentSize强制刷新popoverSize,如:

 CGSize currentSetSizeForPopover =  CGSizeMake(400, 130);
 CGSize fakeMomentarySize = CGSizeMake(currentSetSizeForPopover.width - 1.0f, currentSetSizeForPopover.height - 1.0f);
 self.preferredContentSize = fakeMomentarySize;
 self.preferredContentSize = currentSetSizeForPopover;

但是在iOS8中它似乎不再起作用了..

当我呈现它时它工作,但是如果我导航到另一个viewController然后回到root,则不再尊重preferredContentSize ..