热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

禁用iOS13中呈现的视图控制器的交互式解雇

如何解决《禁用iOS13中呈现的视图控制器的交互式解雇》经验,为你挑选了2个好方法。

iOS 13为模态呈现的视图控制器引入了modalPresentationStyle .pageSheet(及其兄弟姐妹.formSheet)的新设计…

…我们可以通过向下滑动显示的视图控制器来消除这些页面(交互式消除。尽管新的“拉动关闭”功能非常有用,但可能并不总是令人满意。

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



1> Jakub Truhlá..:

选项1:

viewController.isModalInPresentation = true

(禁用的交互式.pageSheet解雇行为是这样的。)

由于iOS 13 UIViewController包含一个名为的新属性isModalInPresentation,必须将其设置true为防止交互式解雇。

它基本上会忽略视图控制器范围之外的事件。如果您不仅在使用自动样式,还在使用演示样式(例如),请记住这一点.popover

false默认情况下,此属性。

来自官方文档:如果为true,则UIKit会忽略视图控制器范围之外的事件,并防止在屏幕上交互关闭视图控制器。


选项2:

func presentationControllerShouldDismiss(_ presentationController: UIPresentationController) -> Bool {
    return false
}

从iOS 13开始,UIAdaptivePresentationControllerDelegate包含一个名为的新方法presentationControllerShouldDismiss

仅当未以编程方式关闭提供的视图控制器且其isModalInPresentation属性设置为时,才调用此方法false

提示:不要忘记分配presentationController的委托。


如果提供的视图控制器是导航控制器,则可以在导航控制器上或导航堆栈中显示的各个视图控制器上设置`isModalInPresentation`。后者允许您逐个屏幕地选择是否可以进行交互式解雇。小心搜索控制器,它们优先于单个视图控制器(而不是导航控制器)。我的博客文章中的更多信息:https://medium.com/@hacknicity/view-controller-presentation-changes-in-ios-13-ac8c901ebc4e

2> Bilal..:

    如果您希望获得与以前的iOS版本(UIModalPresentationStyle.fullScreen

    let someViewCOntroller= \*VIEW CONTROLLER*\
    someViewController.modalPresentatiOnStyle= .fullScreen
    

    如果你使用的是故事板只需选择segua并选择Full Screen形成Presentation下拉。

    如果您只想禁用交互式解雇并将新的演示文稿样式set UIViewController属性设置isModalInPresentationtrue

    if #available(iOS 13.0, *) {
        someViewController.isModalInPresentation = true // available in IOS13
    }
    


推荐阅读
author-avatar
lyw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有