Help us understand the problem. What is going on with this article?

コードで書く画面遷移 アラート swift

More than 1 year has passed since last update.

『はい』、『いいえ』画面遷移

スクリーンショット 2019-08-13 2.00.46.png

はじめに、、、

alart.swift
 override func viewDidAppear(_ animated: Bool) {
この一行をかき、アラートが画面に見えてる状態にします

タイトルとメッセージ(上二段)

alart.swift
        let matchAlert : UIAlertController = UIAlertController(title: "マッチしました", message: "トークをはじめますか?", preferredStyle: UIAlertController.Style.alert)

「はい」の場合

alert.swift
     let yesAction : UIAlertAction = UIAlertAction(title: "はい", style: UIAlertAction.Style.default){
            action in
            let ChatController = chatController()
            self.present(UINavigationController(rootViewController: ChatController),animated: true , completion: nil)
        }
初めに、「はい」をletの後に ”yes action” と定義します。
次に、"title"に表示されるメッセージを記入します。
ここから画面遷移についてです。
"action in"の後のletに遷移先のコントローラを好きな名前に定義します。
今回の場合”Chatcontroller”と定義し遷移先のview controller名を”=”の後に書きます。
今回,遷移先のview controllerの名前が”chatController”ですので"="の後、
”chat controller”と書きます。
この時、後ろに () を忘れず書いてください。
又、定義名とコントローラ名は同じ名前は使用できません。
そのため、定義の方の”c”を大文字に変えています。
上で定義したコントローラ名を"rootViewController"の後ろに書きます。
今回の"Chatcontroller"ですので上記のように書きます。
この時presentの前にselfをつけ忘れたらエラーが出たので忘れずにつけてください。

「いいえ」も上記と同じように書きますが"action in"の後の定義コントローラ名が被らないよう、気をつけてください。又遷移先が異なるため、"chatController"のところをまた別の遷移先のviewController名に変えてください。

最後に、、

alert.swift
  matchAlert.addAction(yesAction)
        matchAlert.addAction(noAction)
        present(matchAlert, animated:true, completion: nil)
    }
"match alert"はタイトルとメッセージで定義したものです。
()にそれぞれの選択肢の存在を書いてください

まとめ

alert.swift
    override func viewDidAppear(_ animated: Bool) {

        let matchAlert : UIAlertController = UIAlertController(title: "マッチしました", message: "トークをはじめますか?", preferredStyle: UIAlertController.Style.alert)

        let yesAction : UIAlertAction = UIAlertAction(title: "はい", style: UIAlertAction.Style.default){
            action in
            let ChatController = chatController()
            self.present(UINavigationController(rootViewController: ChatController),animated: true , completion: nil)
        }

        let noAction : UIAlertAction = UIAlertAction(title: "いいえ", style: UIAlertAction.Style.cancel){
            action in
            let noController = HomeController()
            self.present(UINavigationController(rootViewController: noController), animated: true, completion: nil)
        }

        matchAlert.addAction(yesAction)
        matchAlert.addAction(noAction)
        present(matchAlert, animated:true, completion: nil)


    }
以上の記事はプログラミング初心者によって書かれているため、コードが間違っている場合がございます。
もし、そのようであれば教えて頂けると幸いです
unotuu
Swift勉強中😶/立命館経済学部国際専攻2回_watnow
watnow
「Make Our Life Wonderful」の理念の元、学生自らの力で、より楽しい大学生活を作るため日々アプリ・webサービスの開発を行っている組織です。
http://www.watnow.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした