swift3 Back segueの設定 オブジェクト持って遷移(書きかけ読まないこと!)
画面が戻ったら、またオブジェクトを持ったまま、自動的に遷移する方法を実装
まず遷移元①この画面から移動する
@IBAction func backScene(_ sender: UIBarButtonItem) { performSegue(withIdentifier: UnwindToMsSurvey, sender: self) }
UnwindToMsSurveyはただリテラル入力ミスを防ぐため
private let UnwindToMsSurvey = "UnwindToMsSurvey"
戻る画面②
//MSEntryMapから引き継ぐオブジェクト weak var datPerson: DatPerson? /// 遷移先ViewControllerからの復帰時の処理 @IBAction func unwindToTop(sender: UIStoryboardSegue) { print("unwindToTop() sender:\(sender)") if sender.identifier == "fromMsEntry" { //新規登録画面へpersonオブジェクトを持って遷移する. performSegue(withIdentifier: "toDatPersonWithGPS", sender: nil) } }
ここでバックセグエのメソッドを記載しておく。
これにより①画面にて、StoryboardのExitタブにメソッドが表示される。
黄色いマークから出口マークへ Ctr + ドラッグ
メソッド名は自由、引数は指定。
(sender: UIStoryboardSegue)
強制移動が多いケースなので
画面遷移するかの判定処理メソッドは必要ない。
そのままこのアクションでprepar for segue を呼べば良い。
//通常はこのメソッドで、遷移するかしないかの判定をする。
//ピッカーで選択した値が空とかの場合このメソッドで判定することが多い。
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {