iOS 13 引入了modalPresentationStyle的新设计.pageSheet(及其同级.formSheet),用于模态呈现的 View Controller …

ios - 禁用呈现的 View  Controller 的交互式解雇-LMLPHP

…我们可以通过向下滑动显示的 View Controller 来消除这些页面(交互式消除)。尽管新的“拉动关闭”功能非常有用,但可能并不总是希望如此。

问题:我们如何关闭交互式解雇功能?
-请记住,我们保持演示文稿样式不变。

最佳答案

选项1:

viewController.isModalInPresentation = true

ios - 禁用呈现的 View  Controller 的交互式解雇-LMLPHP

(禁用交互式.pageSheet的解雇行为是这样的。)
  • 从iOS 13开始,UIViewController包含一个名为isModalInPresentation的新属性,必须将该属性设置为true才能防止交互式解雇。
  • 它基本上会忽略 View Controller 范围之外的事件。如果您不仅使用自动样式,还使用诸如.popover等的表示样式,请记住这一点。
  • 默认情况下,此属性为false



  • 选项2:
    func presentationControllerShouldDismiss(_ presentationController: UIPresentationController) -> Bool {
        return false
    }
    
  • 从iOS 13开始,UIAdaptivePresentationControllerDelegate包含一个称为presentationControllerShouldDismiss的新方法。
  • 仅当未以编程方式关闭所提供的 View Controller 且其isModalInPresentation属性设置为false时,才调用此方法。

  • 关于ios - 禁用呈现的 View Controller 的交互式解雇,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56459329/

    10-12 00:26
    查看更多