if文内にUIAlertControllerを書くと落ちる!
とあるソフトを書いていて、パスワードチェックのif文を作成していた。
要は、パスワードが一致していなければelseで
「あんさん、パスワード違ゃいまっせ!」とアラートを出して、次画面へのセグエにつながらないようにしたかったのだ。
Objective-Cで同じようなことをやってきたのに…
Swiftだと何故か
ク ラ ッ シ ュ す る
※私だけでしたら、ご指摘くだされば幸いです。
なぜダメなのか全然わからなくて、3日間くらいネットを探ってやっと見つけたtakabosoftさんのこの記事。
・表示元のUIViewControllerのインスタンスが必要になった
・二重でアラートを表示させる事ができなくなった
(takabosoftさん、ありがとうございます!)
とのことだけれど
今の私には、まだむずかしくてよくわからない…。
(もう少し経験を積めばわかるのだろうが…
このままだとLv.1なのに松明も持たずに洞窟に入るようなものだ!)
なぜシンプルな方法がないのか。
と思っていたところ…SwiftでのUIAlertViewの出し方を書いてくださっている記事発見。
シンプルなUIAlertView(Swift) サンプル
Night___さんのこの記事&takabosoftさんの補足に助けられた!
takabosoftさんがリンク先記事に書いていらしたコードを引用しておく。
let alert = UIAlertView()
alert.title = "Title"
alert.message = "My message"
alert.addButtonWithTitle("Ok")
alert.show()
こ ん な シ ン プ ル な こ と で よ か っ た の か ! !
これならif文の中に書いても落ちなかった。
今後UIAlertViewが非推奨になっていくのは理解っているが、
ここで躓いたままだと、ソフトが完成しないのだ。
次善の策で今は前に進み、後日UIAlertControllerにて実装しなおしたいと思う。
…takabosoftさんとNight__さんに改めて感謝。