在代码中使用了UIAlertView,由于没有智能的提示,编译没有问题,但当触发时,就会崩溃,而且没有
出现任何提示,不知道是什么错误,大家如果遇到同样的情况,就知道怎么解决了。
这里写了一个扩展,这样更方便使用了
- import Foundation
- import UIKit
- extension UIAlertController {
- class func showAlert(
- presentController: UIViewController!,
- title: String!,
- message: String!,
- cancelButtonTitle: String? = "cancel",
- okButtonTitle: String? = "ok") {
- let alert = UIAlertController(title: title!, message: message!, preferredStyle: UIAlertControllerStyle.Alert)
- if cancelButtonTitle {
- alert.addAction(UIAlertAction(title: cancelButtonTitle!, style: UIAlertActionStyle.Default, handler: nil))// do not handle cancel, just dismiss
- }
- if okButtonTitle {
- alert.addAction(UIAlertAction(title: okButtonTitle!, style: UIAlertActionStyle.Default, handler: nil))// do not handle cancel, just dismiss
- }
- presentController!.presentViewController(alert, animated: true, completion: nil)
- }
- class func showAlert(
- presentController: UIViewController!,
- title: String!,
- message: String!,
- cancelButtonTitle: String? = "cancel",
- okButtonTitle: String? = "ok",
- okHandler: ((UIAlertAction!) -> Void)!) {
- let alert = UIAlertController(title: title!, message: message!, preferredStyle: UIAlertControllerStyle.Alert)
- if cancelButtonTitle {
- alert.addAction(UIAlertAction(title: cancelButtonTitle!, style: UIAlertActionStyle.Default, handler: nil))// do not handle cancel, just dismiss
- }
- if okButtonTitle {
- alert.addAction(UIAlertAction(title: okButtonTitle!, style: UIAlertActionStyle.Default, handler: okHandler))// do not handle cancel, just dismiss
- }
- presentController!.presentViewController(alert, animated: true, completion: nil)
- }
- }
调用来测试
- func onButtonClick(sender: UIButton!) {
- println("clicked button")
- // UIAlertController.showAlert(self, title: "title", message: "message")
- // UIAlertController.showAlert(self, title: "title", message: "message", cancelButtonTitle: "cancel", okButtonTitle: "ok")
- UIAlertController.showAlert(self, title: "title", message: "message", cancelButtonTitle: "cancel", okButtonTitle: "ok", okHandler: {
- (UIAlertAction) in
- println("no nothing")
- })
- // do not use below
- //alert.show()
- // create UIAlertView
- // let alertView = UIAlertView(title: "alertView", message: "clickedButton event", delegate: self, cancelButtonTitle: "cancel", otherButtonTitles: "ok")
- // alertView.show()
- }