まだどこにもないアプリを作る

アプリ開発でつまづいたところなどを中心に記事にして行きます。

Swift 一度だけ実行したいアラートの書き方

すっきりしたコードではないし他にやり方があると思いますがこれで一応。

UserDefaultに保存してある値を変更しない限り

1度アラートを出したら2度と出ないアラートを作ることがきます。

 

let ud = UserDefaults.standard

 

func onceAlert() {//単発アラート

        var isAlreadyDone = false//既に実行済みかどうか

        if let x = ud.object(forKey: "isAlreadyDone") as? Bool{

            isAlreadyDone = x

        }

        if isAlreadyDone{

            

        }else{

            let alert = UIAlertController(title: "Test", message: "TestMessage", preferredStyle: .alert)

            let okAction: UIAlertAction = UIAlertAction(title:"OK", style: .default, handler:{(action: UIAlertAction!) -> Void in

            })

            alert.addAction(okAction)

            alert.view.setNeedsLayout()

            let screenSize = UIScreen.main.bounds

            alert.popoverPresentationController?.sourceRect = CGRect(x: view.frame.width/2, y: view.frame.height, width: 0, height: 0)

            alert.popoverPresentationController?.sourceView = self.view

            self.present(alert, animated: true) {

                ud.set(true, forKey: "isAlreadyDone")

            }

        }

    }

    

 

頑張っていきましょう。