在代码中使用了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() }