Ios Swift Popover不恰当地驳回了iPhone8 Plus的申请

Ios Swift Popover不恰当地驳回了iPhone8 Plus的申请,ios,swift,Ios,Swift,在iPhone8 Plus上,每次用户触摸视图内部时,popover视图控制器都会关闭,就像用户触摸视图控制器上的按钮一样,而当用户触摸视图外部时,我们期望它关闭时,什么也不会发生。在对iphone6s和几台iPad进行测试时,该应用程序的性能与预期相符 popover是使用以下Swift代码以编程方式创建的: let selectionViewController = SelectionTableViewController() selectionViewController.modalPr

在iPhone8 Plus上,每次用户触摸视图内部时,popover视图控制器都会关闭,就像用户触摸视图控制器上的按钮一样,而当用户触摸视图外部时,我们期望它关闭时,什么也不会发生。在对iphone6s和几台iPad进行测试时,该应用程序的性能与预期相符

popover是使用以下Swift代码以编程方式创建的:

let selectionViewController =  SelectionTableViewController()
selectionViewController.modalPresentationStyle = .popover
selectionViewController.preferredContentSize = CGSize(width: 200, height: 300)

let popoverViewController = selectionViewController.popoverPresentationController
popoverViewController?.permittedArrowDirections = UIPopoverArrowDirection.up
popoverViewController?.delegate = self
popoverViewController?.sourceView = self.titleView
popoverViewController?.sourceRect = self.titleView.bounds

self.present(selectionViewController, animated: true, completion: nil)
此外,还对自适应演示样式进行了调整,以保持iPhone与iPad的一致性:

func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
        return .none
    }
编辑: 我已将该应用程序的简化版本添加到github,该应用程序正在重新创建问题:

事实证明,这个特殊的模拟器刚刚用软管冲洗过。我在评论中建议:

试着删除这个模拟器并创建一个全新的模拟器。事实上,我经常删除所有模拟器并重新创建它们,尤其是在Xcode更新之后

OP做到了这一点,应用程序开始正常运行


这是一个非常奇怪的问题;我从没听说过这样的事

事实证明,这个特殊的模拟器刚刚被冲洗过。我在评论中建议:

试着删除这个模拟器并创建一个全新的模拟器。事实上,我经常删除所有模拟器并重新创建它们,尤其是在Xcode更新之后

OP做到了这一点,应用程序开始正常运行


这是一个非常奇怪的问题;我从没听说过这样的事

您的sourceRect不正确,这可能不是问题的原因,但它需要fixing@matt触摸popover按钮、表格视图单元格内的任何位置,空格将导致popover关闭。触摸外面的任何地方都不会让人失望。谢谢你的sourceRect提示@matt I将sourceRect更新为reference self.titleView.bounds。问题仍然存在,但代码仍然很奇怪。再次感谢您指出这一点。@matt popover视图控制器堆叠在其他视图和导航控制器后面,我认为这有点奇怪,但这可能是正常的。否则,所有视图位置和类似的一切看起来都很正常。是的,我想可能是运行时不理解popover也是,但如果是这样的话,似乎会有一个放错位置的矩形,不会忽略popover。相反,它是popover之外的整个区域,就好像正常行为被某种方式颠覆了一样。@matt我将一个简化的项目上传到GitHub,重新创建了该问题,并将链接放在了原始帖子中。您的sourceRect不正确,这可能不是问题的原因,但它需要fixing@matt触摸popover按钮内的任何位置,“表格视图”单元格中的空格将导致弹出框关闭。触摸外面的任何地方都不会让人失望。谢谢你的sourceRect提示@matt I将sourceRect更新为reference self.titleView.bounds。问题仍然存在,但代码仍然很奇怪。再次感谢您指出这一点。@matt popover视图控制器堆叠在其他视图和导航控制器后面,我认为这有点奇怪,但这可能是正常的。否则,所有视图位置和类似的一切看起来都很正常。是的,我想可能是运行时不理解popover也是,但如果是这样的话,似乎会有一个放错位置的矩形,不会忽略popover。相反,它是popover之外的整个区域,就好像正常的行为被某种方式颠覆了一样。@matt我将一个简化的项目上传到GitHub,重新创建了这个问题,并将链接放在原始帖子中。