画面遷移する前に制御する[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 }
値を次の画面に渡したい場合もこのメソッドの中でデータをセットすればよいということになります。
以上です。