#Swift alertで"ok"とか何かしら押したら画面遷移するように設定
下記コードは"check"って書いてあるボタン押したらアラートが出て、"ok"押したら画面遷移するよってやつ
gamenseni.swift
@IBAction func tapCheck(_ sender: UIButton) {
//部品のアラートを作る
let alertController = UIAlertController(title: "e.g.こんにちは", message: "e.g.日本語だよ", preferredStyle: UIAlertControllerStyle.alert)
//ちなみにUIAlertControllerStyle.alertをactionsheetに変えると下からにょきっと出てくるやつになるよ
//OKボタン追加
let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler:{(action: UIAlertAction!) in
//アラートが消えるのと画面遷移が重ならないように0.5秒後に画面遷移するようにしてる
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
// 0.5秒後に実行したい処理
self.performSegue(withIdentifier: "セグエのid", sender: nil)
}
}
)
alertController.addAction(okAction)
//アラートを表示する
present(alertController, animated: true, completion: nil)
}
追記
0.5秒後に実行したい処理、今回は画面遷移だけどセグエにidつけてperformSegueやってるのでセグエ無しでやりたいとかやったら
nosegue.swift
self.performSegue(withIdentifier: "セグエのid", sender: nil)
のところを
VCにidをつけて
nosegue1.swift
let storyboard: UIStoryboard = self.storyboard!
let nextView = storyboard.instantiateViewController(withIdentifier: "VCのid")
self.present(nextView, animated: true, completion: nil)
にしてもok
##画面遷移先の背景がなぜか真っ黒
なんでか知らんが画面遷移先が真っ黒に!
右側のとこ(ど忘れ)でbackground設定しても反映されず...
changehaikei.swift
view.backgroundColor = UIColor.yellow
とか背景変えるコードを適当にviewDidLoad()のとこに書けば解決