Swift UI学习之UIAlertController(变得麻烦了)

在代码中使用了UIAlertView,由于没有智能的提示,编译没有问题,但当触发时,就会崩溃,而且没有

出现任何提示,不知道是什么错误,大家如果遇到同样的情况,就知道怎么解决了。

这里写了一个扩展,这样更方便使用了

[objc]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. import Foundation  
  2. import UIKit  
  3.   
  4. extension UIAlertController {  
  5.     class func showAlert(  
  6.         presentController: UIViewController!,  
  7.         title: String!,  
  8.         message: String!,  
  9.         cancelButtonTitle: String? = "cancel",  
  10.         okButtonTitle: String? = "ok") {  
  11.         let alert = UIAlertController(title: title!, message: message!, preferredStyle: UIAlertControllerStyle.Alert)  
  12.         if cancelButtonTitle {  
  13.             alert.addAction(UIAlertAction(title: cancelButtonTitle!, style: UIAlertActionStyle.Default, handler: nil))// do not handle cancel, just dismiss  
  14.         }  
  15.         if okButtonTitle {  
  16.             alert.addAction(UIAlertAction(title: okButtonTitle!, style: UIAlertActionStyle.Default, handler: nil))// do not handle cancel, just dismiss  
  17.         }  
  18.           
  19.         presentController!.presentViewController(alert, animatedtrue, completion: nil)  
  20.     }  
  21.       
  22.     class func showAlert(  
  23.         presentController: UIViewController!,  
  24.         title: String!,  
  25.         message: String!,  
  26.         cancelButtonTitle: String? = "cancel",  
  27.         okButtonTitle: String? = "ok",  
  28.         okHandler: ((UIAlertAction!) -> Void)!) {  
  29.             let alert = UIAlertController(title: title!, message: message!, preferredStyle: UIAlertControllerStyle.Alert)  
  30.             if cancelButtonTitle {  
  31.                 alert.addAction(UIAlertAction(title: cancelButtonTitle!, style: UIAlertActionStyle.Default, handler: nil))// do not handle cancel, just dismiss  
  32.             }  
  33.             if okButtonTitle {  
  34.                 alert.addAction(UIAlertAction(title: okButtonTitle!, style: UIAlertActionStyle.Default, handler: okHandler))// do not handle cancel, just dismiss  
  35.             }  
  36.               
  37.             presentController!.presentViewController(alert, animatedtrue, completion: nil)  
  38.     }  
  39. }  


调用来测试

[objc]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1.     func onButtonClick(sender: UIButton!) {  
  2.         println("clicked button")  
  3.   
  4.        // UIAlertController.showAlert(self, title: "title", message: "message")  
  5.        // UIAlertController.showAlert(self, title: "title", message: "message", cancelButtonTitle: "cancel", okButtonTitle: "ok")  
  6.         UIAlertController.showAlert(self, title"title", message"message", cancelButtonTitle"cancel", okButtonTitle"ok", okHandler: {  
  7.             (UIAlertAction) in  
  8.             println("no nothing")  
  9.         })  
  10.         // do not use below  
  11.         //alert.show()  
  12.         // create UIAlertView  
  13. //        let alertView = UIAlertView(title: "alertView", message: "clickedButton event", delegate: self, cancelButtonTitle: "cancel", otherButtonTitles: "ok")  
  14. //        alertView.show()  
  15.     }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值