swift3 Back segueの設定 オブジェクト持って遷移(書きかけ読まないこと!)

画面が戻ったら、またオブジェクトを持ったまま、自動的に遷移する方法を実装

f:id:happy_teeth_ago:20180718162615p:plain

まず遷移元①この画面から移動する

 @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 + ドラッグ f:id:happy_teeth_ago:20180721201344p:plain

メソッド名は自由、引数は指定。 (sender: UIStoryboardSegue) 強制移動が多いケースなので
画面遷移するかの判定処理メソッドは必要ない。
そのままこのアクションでprepar for segue を呼べば良い。
//通常はこのメソッドで、遷移するかしないかの判定をする。
//ピッカーで選択した値が空とかの場合このメソッドで判定することが多い。

    override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {