【问题标题】:Popover won't respect preferred sizePopover 不会尊重首选尺寸
【发布时间】:2014-11-17 23:34:49
【问题描述】:

我的 iPad 故事板中有一个 popover segue。弹出框包含一个导航控制器,其中包含我的视图控制器。我在我的视图控制器中设置了preferredContentSize,并尝试在我的视图控制器中设置导航控制器的preferredContentSize。弹出窗口仍然填满屏幕。我什至尝试了已弃用的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;
}

【问题讨论】:

  • 也许这会对你有所帮助(我的 answer 和其他人以及整个讨论)

标签: ipad ios8 uistoryboard uipopovercontroller uistoryboardsegue


【解决方案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 然后返回到根目录,则不再尊重 preferredContentSize..

【讨论】:

  • 对于 iOS 8 请看看我的answer
猜你喜欢
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 2015-07-22
  • 2014-11-07
  • 1970-01-01
  • 2016-01-26
  • 2020-12-26
相关资源
最近更新 更多