思い立ったが吉日!

iOSが好きです。

ViewControllerにclosureの変数を持って、閉じる動作を呼出し側から設定する

ViewControllerにclosureの変数を持って、閉じる動作を呼出し側から設定する

複数画面から呼び出される共通画面を作ってる時に、 navigation内にいてpush遷移するパターンと、 navigation外からmodalとして遷移するパターン と言った遷移が違うけど同じ画面で済ませたいときに

遷移先のViewController( CustomViewController )

// 閉じる動作を呼び出し側から設定する
var onClose: ((viewController: UIViewController) -> Void)?

遷移元(呼出し側)のViewController プッシュで遷移

let customVC = CustomViewController()
//
customVC.onClose = { [unowned self] (configFrameViewController) in
        self.navigationController?.popViewControllerAnimated(true)
}

遷移元(呼出し側)のViewController  モーダルで消す

let customVC = CustomViewController()
//
customVC.onClose = { [unowned self] (configFrameViewController) in
        self.dismissViewControllerAnimated(true, completion: nil)
}