[swift] 建立警告視窗 UIAlertController, UIAlertAction

建議先自己在Help>Documentation and API Reference中搜尋 UIAlert的寫法。

在Main.storyBoard中,建立一個button來觸發Alert,然後按住control拖曳至ViewController,設定IBAction。

在button方法中,建立UIAlertController。

let alert = UIAlertController(title: "警告視窗", message: "你成功建立了警告視窗", preferredStyle: .alert)

title 是警告視窗的標題

message 是對此警告視窗的說明

preferredStyle 是呈現的方式,有兩種可以選擇。
.alert 是如同第一張圖片,顯示在畫面中間的樣子。
.actionSheet 是如同下面這張圖面,顯示在畫面下方的樣子。

接著要建立UIAlertAction

當你正要建立UIAlertAction時,會發現Xcode會自動幫你輸入下面這個方法,記得在handler: 後面的地方按下 Enter。

就會變成這樣了

let action = UIAlertAction(title: "OK!", style: .default) { (UIAlertAction) in self.nothing()

title 是動作的名稱

style 對外觀上不太有會有改變,只是對於不同動作的選擇,有三種。
default 為預設。
cancel 表示此動作可能會取消某個工作,或是維持不變。
destructive 表示此動作可能會改變某種工作,刪除資料。

in的後面通常跟著self,因此self可以讓設計者自己選擇要觸發的動作,在這裡只是範例,就隨便建一個空個方法叫nothing()。

接著再輸入以下兩行就可以讓Alert動作!

alert.addAction(action)
present(alert, animated: true, completion: nil)

完整的code

import UIKit
class ViewController: UIViewController {
@IBAction func button(_ sender: UIButton) {
let alert = UIAlertController(title: "警告視窗", message: "你成功建立了警告視窗", preferredStyle: .alert)
let action = UIAlertAction(title: "OK!", style: .default) { (UIAlertAction) in
self.nothing()
}
alert.addAction(action)
present(alert, animated: true, completion: nil)
}
func nothing(){
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}