presentViewControllerでのCallbackの実装
これが一番柔軟でええわ。Delegateを経由して子供からコールバック用の処理を叩く
var delegate: ParentViewControllerDelegate! func closeModalView() { self.dismissViewControllerAnimated(true, completion: { //親のViewControllerでimplしたデリゲートで定義した処理を呼ぶ //このdelegateは親のインスタンスでないと行けないので、present //するViewControllerを初期化時にself等でインスタンスをセットしておく self.delegate.changeText("This text was changed by delegate.") }) }
デリゲートは継承関係もクソもなくコールバックを強制できるのが便利よね〜