iOS 8 - Popover 中的模态

Posted

技术标签:

【中文标题】iOS 8 - Popover 中的模态【英文标题】:iOS 8 - Modal in Popover 【发布时间】:2014-11-14 11:25:48 【问题描述】:

我有一个带有 TabBarController 的弹出窗口。在一个选项卡中有一个 TableViewController 与名称列表。还有一个加号按钮,它有一个模式 segue 到 AddCharacterVC 用于添加新名称。 在 ios 7 中,我这样做:

AddCharacterViewController *acvc = (AddCharacterViewController *)segue.destinationViewController;
acvc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
acvc.modalPresentationStyle = UIModalPresentationCurrentContext;// so it does not take full screen in popover

在 AddCharacterVC 中,我将内容大小设置为:

- (void)viewWillAppear:(BOOL)animated 

CGSize size = CGSizeMake(320, 480); // size of view in popover
if (IDIOM == IPAD && [self respondsToSelector:@selector(preferredContentSize)])
    self.preferredContentSize = size;

而且效果很好。

但是,在 iOS 8 中,模态视图不会覆盖整个弹出框,使 TabBar 可见。用户可以点击或不点击,反正模态视图不会正常展开。

我试过了:

将 acvc.modalPresentationStyle 设置为 UIModalPresentationOverCurrentContext 试图将 TabBar 设置为隐藏 在情节提要中检查到 TableVC 的边缘在底部栏下延伸,并且模态视图 (AddCharacterVC) 中的底部栏设置为无

都没有结果。

现在我唯一能想到的就是尝试制作 modalPresentationStyleCustom 并使用 UIPresentationController (我现在正在尝试这样做,但我以前没有这样做过)。我错过了什么吗?有没有其他方法可以做到这一点?抱歉,我还不能在这里发布图片。非常感谢!

【问题讨论】:

【参考方案1】:

好的,所以我已将 modalPresentationStile 设置为 UIModalPresentationCustom,并使用了 UIPresentationController - 我刚刚从 WWDC-14 的 LookInside 项目中复制了代码并对其进行了一些修改。 我不确定这是否是最好的解决方案,但它在我的情况下有效。

【讨论】:

以上是关于iOS 8 - Popover 中的模态的主要内容,如果未能解决你的问题,请参考以下文章

iOS Popover 显示在 TextView 上

转换为使用 iOS 8 Popover Segues 时 UISplitViewController 崩溃

ios 7中的UI Popover ViewController?

iOS_21团购_Popover适应iPad横竖屏切换

删除Popover View Controller -swift

popover带箭头弹框