确保presentViewController的弹出窗口是原始演示者

时间:2018-06-15 16:29:28

标签: ios uiviewcontroller uicontainerview uimodalpresentationstyle

我有一个容器视图控制器。其中一个子视图控制器需要呈现一个弹出窗口。问题是popover的presentingViewController最终成为容器视图控制器,而不是呈现它的子视图控制器。

*我在子视图控制器(及其导航控制器)上将definesPresentationContext属性设置为true,但这并没有改变任何东西(仅当呈现的控制器的{{1}时才有用是} modalPresentationStyle.currentContext

overCurrentContext的文档根据演示风格讨论了演示文稿如何来自其他控制器。所以我希望有一种方法可以覆盖或拦截这个决定,所以在这种情况下,我可以确保popover的UIViewController present(_:animated:completion:)是最初呈现它的控制器。

我在容器视图控制器中有其他功能与适应大小类中受此问题阻碍的更改有关。

有没有办法确保popover的presentingViewController是原始演示者?这可能与presentingViewController的创建方式有关,但我看不到如何点击进入那个过程。

下面是演示此问题的代码。如果您希望复制该问题,请在Xcode中创建一个新的iOS Single View App项目。然后使用下面的代码替换提供的presentationController的内容。在iPad模拟器上运行。将添加具有一个子视图控制器的容器视图控制器,并将从该子项呈现弹出窗口。调试器控制台将显示一些输出。注意弹出窗口的ViewController.swift是容器而不是子容器。

注意:虽然以下是在Swift中,但Objective-C响应也很好。

presentingViewController

0 个答案:

没有答案