閱讀412 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Swift UI學習之UIAlertController(變得麻煩了)

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



最後更新:2017-04-03 07:56:58

  上一篇:go 用老項目來緬懷下逝去的青春
  下一篇:go swift 學習這十八:宏()