在演示过程中显示 UIAlertController

Posted

技术标签:

【中文标题】在演示过程中显示 UIAlertController【英文标题】:present UIAlertController while a presentation is in progress 【发布时间】:2019-01-14 18:02:36 【问题描述】:

我正在尝试一个接一个地显示两个不同的警报。第一个是加载指示器。第二个是警报,告诉用户他们所做的事情是否成功或没有遵循 UDP 消息。出于演示目的,我已经简化了代码。

我的问题是,虽然我在调用第二个警报之前关闭了 loadingAlert,但我仍然收到错误:

警告:在演示过程中尝试在 ViewController 上演示 UIAlertController!

我的第二个警报从未显示。

这是我的 Swift 4 代码:

func getUpdate()
    
    let loading = alert(title: "Performing Task...")

    DispatchQueue.global(qos: .userInitiated).async 
        let server:UDPServer=UDPServer(address:"0.0.0.0", port:5006)
        let (data,_,_) = server.recv(1024)

        DispatchQueue.main.async
        
            loading.dismiss(animated: false, completion: nil)

            OperationQueue.main.addOperation
            
                alert(title: "How can I show this alert?")
            
        
    


func alert(title:String) -> UIAlertController

    let alertController = UIAlertController(title: title, message: "", preferredStyle: UIAlertControllerStyle.alert)
    ...
    rootViewController?.present(alertController, animated: true, completion: nil)

    return alertController

最好的方法是什么?

【问题讨论】:

【参考方案1】:

在对dismiss的调用中使用completion参数:

DispatchQueue.main.async
    loading.dismiss(animated: false) 
        OperationQueue.main.addOperation 
            alert(title: "How can I show this alert?")
        
    

【讨论】:

以上是关于在演示过程中显示 UIAlertController的主要内容,如果未能解决你的问题,请参考以下文章

在演示过程中尝试在 UITabBarController 上呈现 UIImagePickerController

cocos2d-x 显示触摸操作(显示水波点击效果,用于视频演示)

最新 IntelliJ IDEA 配置 Git / GitHub 过程演示(2021超详细图文版)

开发过程中快速抓包并解析

尝试在使用OAuth演示者时显示UINavigationController

警告:在演示或关闭过程中尝试从视图控制器 <ViewController> 关闭