画面遷移する前に制御する[Swift]

画面遷移する前に制御する[Swift]

Swiftでは画面遷移する前に入力バリデーションチェックしたり、遷移先の画面にデータを渡したしするすることができます。

画面遷移する前に以下のメソッドを呼び出す

override func shouldPerformSegue(withIdentifieridentifier: String, sender: Any?) -> Bool 

falseを返したときは画面遷移させずにtrueを返したときだけ画面遷移します。

以下のサンプルソースのコメントを使って解説します。

期間限定イチ押しグルメが大集合!買うなら楽天市場

class ViewController: UIViewController {

    @IBOutlet weak var textField: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    //下記のメソッドを追加する
    override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
        
        //データが空の場合は画面推移しない
        if textField.text == ""{
            
            return false
        }
        //trueを返したときだけ画面遷移する
        return true
    }

値を次の画面に渡したい場合もこのメソッドの中でデータをセットすればよいということになります。

以上です。