首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在UIAlertController中,CompletionHandler不能处理闭包

。UIAlertController是iOS开发中用于显示弹窗的控件,而CompletionHandler是一个闭包,用于处理弹窗操作完成后的回调。

在UIAlertController中,可以通过addAction方法添加按钮,并为每个按钮指定一个处理闭包。这个闭包会在用户点击按钮后被调用,用于执行相应的操作。例如,可以在闭包中更新UI、执行网络请求、保存数据等操作。

然而,由于UIAlertController的CompletionHandler只接受一个UIAlertAction类型的参数,无法直接处理闭包。如果需要在弹窗操作完成后执行复杂的逻辑,可以考虑将闭包的处理逻辑封装到一个函数中,然后在CompletionHandler中调用该函数。

以下是一个示例代码:

代码语言:swift
复制
func handleAlertAction() {
    // 处理弹窗操作的闭包逻辑
    print("Alert action handled")
}

let alertController = UIAlertController(title: "Title", message: "Message", preferredStyle: .alert)

let action = UIAlertAction(title: "OK", style: .default) { _ in
    handleAlertAction()
}

alertController.addAction(action)

// 在需要显示弹窗的地方,present alertController

在上述示例中,handleAlertAction函数用于处理弹窗操作的闭包逻辑。在UIAlertAction的闭包中,调用handleAlertAction函数即可执行相应的操作。

需要注意的是,UIAlertController是iOS原生控件,与腾讯云的产品没有直接关联。因此,在这个特定的问题中,不需要提供腾讯云相关产品的链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【错误记录】Groovy 使用报错 ( 不能直接使用外部对象的方法 | 需要先设置 delegate 代理 )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Groovy 的 Closure , 直接调用外部对象的方法 , 会报错 ; class Test { def fun...doCall(Groovy.groovy) at Groovy.run(Groovy.groovy:14) Process finished with exit code 1 二、解决方案 ---- ...Closure , 如果要调用外部对象的方法 , 需要先设置 Closure 对象的 delegate 成员为指定的外部对象 ; class Test { def fun() {...println "fun" } } // 不能直接调用 Test 对象的方法 // 此时可以通过改变代理进行调用 def closure = { fun() } closure.delegate...= new Test() closure() 设置完 Closure 对象的 delegate 之后 , 的执行效果 :

91320
  • iOS 无弹框换图标,直接用就可以了

    请随时联系 需求:换图标,用户无感 1.分析:         对于iOS,是开发了API可以换图标,但是有规定的,就是你要换的图标是要在APP里面内置的,也就是说你要换的APPicon,是提前放在APP里面的...2.代码实现过程     (1)Info.plist配置,直接添加(以下代码直接复制到info.plist): <!...,我这里用的是MayOneIcon;(注)这个名字plist里面有俩个地方需要修改。      ...(3)需要调用改图标的地方写入换图标的代码: /* 直接调用此方法,传入数据为iconName,也就是后台给你要换的图标 默认传的是@"DefaultIcon" */ - (void)chengeAppicon...NSLog(@"message : %@",((UIAlertController *)viewControllerToPresent).message); UIAlertController

    38220

    iOS 无弹框换图标,直接用就可以了

    需求:换图标,用户无感 1.分析:         对于iOS,是开发了API可以换图标,但是有规定的,就是你要换的图标是要在APP里面内置的,也就是说你要换的APPicon,是提前放在APP 里面的...2.代码实现过程     (1)Info.plist 配置,直接添加(以下代码直接复制到info.plist):     (2)导入预制的icon,120*120的就行了,然后名字要和plist里面的对应,我这里用的是MayOneIcon;(注)这个名字plist...(3)需要调用改图标的地方写入换icon的代码: #pragma mark ExchengeIconMethod /* 直接调用此方法,传入数据为iconName,也就是后台给你要换的图标...NSLog(@"message : %@",((UIAlertController *)viewControllerToPresent).message); UIAlertController

    78410

    iOS 使用WKWebView

    // JS端调用alert时所传的数据可以通过message拿到 // 原生得到结果后,需要回调JS,是通过completionHandler回调 self.showNoticeText(message...// JS端调用confirm函数时,会触发此方法 // 通过message可以拿到JS端所传的数据 // iOS端显示原生alert得到YES/NO后 // 通过completionHandler...-> Void) { // JS端调用prompt函数时,会触发此方法 // 要求输入一段文本 // 原生输入得到文本内容后,通过completionHandler回调给JS let...alertTextField = UIAlertController.init(title: "请输入", message: "JS调用输入框", preferredStyle: UIAlertController.Style.alert...{ //页面开始加载,可在这里给用户loading提示 self.showNoticeWait(text: "加载..."); } func webView(_ webView: WKWebView

    1.6K10

    Kingfisher源码阅读(三)

    (image: image, error: error, cacheType: .None, imageURL: URL) } ) } 在下载完图片之后的完成(会在下载请求结束后调用...我们进入到ImageCache中看看这个方法的具体逻辑: 给完成进行解包,若为空则提前返回: // No completion handler....nil } 如果内存中有缓存则直接从内存取图片;再判断图片是否需要解码,若需要,则先解码再调用完成,否则直接调用完成: //如果内存中有缓存,则直接从内存读取图片 if let image...} } 如果内存没有缓存,则从文件取图片,并判断是否需要进行解码,若需要则先解码再将它缓存到内存然后执行完成,否则直接缓存到内存然后执行完成,这里有一些关于GCD和避免retain cycle...UIImage+Extension文件还有一些处理图片的扩展方法,诸如标准化图片格式、GIF图片的存储、GIF图片的展示等等我也不细讲了,这些都算是一些套路上的东西,正确调用苹果给的API就好了。

    72440

    Kingfisher源码阅读(二)

    这个完成做缓存相关的操作,我们先不管缓存,先去ImageDownloader(downloader是它的一个实例)里看看downloadImageWithURL这个方法,它是长这样的: //默认访问级别...NSURLSession,是iOS7之后比较主流的用于网络请求的API(iOS7以前多使用NSURLConnection),然后指明了以自身实例作为delegate,started是一个作为参数传入的...,它长什么样downloadImageWithURL调用setupProgressBlock时其实我们已经见过了: setupProgressBlock(progressBlock, completionHandler...的键值对删掉(因为元组已经取出来了,接下来就要依次调用完成,这张图片的fetchLoad在下载模块的使命已经光荣完成),最后依次调用callbacks的完成。...challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust { //白名单的域名做特殊处理

    77050

    WKWebView的使用与JS交互详细解读

    3.原生得到结果后,需要回调给JS,通过completionHandler 回调给JS 4.completionHandler 回调的参数和返回值都是空 /** 下面这三个方法根据前面的字面意思就能区分记住...// 原生得到结果后,需要回调给JS,通过completionHandler 回调给JS // completionHandler 回调的参数和返回值都是空 -(void)webView:(WKWebView...:(void (^)(void))completionHandler { UIAlertController *alert = [UIAlertController alertControllerWithTitle...// 原生输入得到文本内容后,通过completionHandler回调给JS 大家注意这个回调的completionHandler参数是字符串 -(void)webView:(WKWebView...1.JS端调用confirm函数时,会触发此方法 2.通过message可以拿到JS端所传给我们数据 3.iOS端显示原生alert得到YES/NO后,通过completionHandler回调给JS

    3.1K70

    iOS14开发-UIViewController

    顺向传值只需要在目标控制器声明需要接收的参数,然后源控制器中进行传值即可。 storyboard 方式。 代码方式。...被代理对象(需要传值的 UIViewController) 声明协议,协议定义传值方法,方法的参数个数与类型取决于需要传值的个数和类型。 UIViewController 声明一个代理属性。...需要设置当前的 UIViewController 为被代理 UIViewController 的代理属性。 可以理解为代理模式协议的替代,比代理模式更简单。...需要传值的 UIViewController 声明一个属性,的参数个数与类型取决于需要传值的个数和类型,的返回值一般为 Void。 需要传值的地方调用完成传值。...接收值的 UIViewController 实现需要传值的 UIViewController 属性,的实现拿到传过来的值进行使用。

    2.4K20
    领券