2018年3月10日土曜日

Swift4 でアラートを表示する方法

概要

UIAlertController を使います
いろいろとサンプルは転がっているので備忘録として残して残しておきます

環境

  • macOS 10.13.2
  • Xcode 9.2 (9C40b)

サンプルコード

func showAlert() {
    let alert = UIAlertController(title: "Let's play the game.", message: "You have not got history yet.", preferredStyle: UIAlertControllerStyle.alert)
    let ok = UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)
    alert.addAction(ok)
    self.present(alert, animated: true, completion: nil)
}

これを画面が遷移した直後に表示したい場合は viewDidLoad ではなく viewDidAppear でコールしましょう
例えば以下のような感じです

override func viewDidAppear(_ animated: Bool) {
    if results.isEmpty {
        showAlert()
    }
}

viewDidLoad でコールすると Warning: Attempt to present * on * whose view is not in the window hierarchy という警告が表示されアラートが表示されないので注意してください

0 件のコメント:

コメントを投稿