如何避免同时启动两个 UIPopoverPresentationController,每个控制器都来自 UItoolBar 中的 UIBarButtonItem

How to avoid having two UIPopoverPresentationControllers up at same time each from UIBarButtonItem in UItoolBar

提问人:user3134818 提问时间:5/19/2020 更新时间:5/19/2020 访问量:46

问:

我正在将使用 UIPopoverController 的旧 iOS 应用程序转换为新的 UIPopoverPresentationController。我有两个弹出框(A 和 B),每个弹出框都是通过单击 UIToolBar 中的 UIBarButtonItem(butA、butB)启动的。我每个弹出框都显示良好。如果我在主视图中单击,弹出框会正确消失。

如果我按 but,则会出现弹出框 A。如果我然后按 butB,则没有任何反应。在本例中,弹出框控制器 B 是从 UIBarButtonItem (butB) 呈现的。

如果我在 butA 和 butB 附近显示来自 sourceRect 的弹出框,我得到的结果略有不同。单击 butA,弹出窗口 A 出现。单击 butB 弹出框 A 消失。再次单击 butB,然后出现弹出框 B。

我怎样才能让它正常工作,当我单击 butB 时弹出框 A 消失?我试图将 ViewController A 作为 butB 按下操作的一部分关闭,但此时的 ViewController A 对象为 nil。

任何帮助将不胜感激。

iOS UIBaBarButtonItem UIPopOverPresentationController

评论

0赞 Dale 5/19/2020
这听起来像是正确和预期的行为。事实上,当显示弹出框时,工具栏应该被禁用。顺便说一句,您的标题描述与您的问题正文不匹配。
0赞 user3134818 5/20/2020
我想要的是一键 butB 以关闭弹出框 A 并显示弹出窗口 B。我能够使用旧的 UIPopoverController 执行此操作,因为它有一个 dismisspopover 方法

答: 暂无答案