UIViewController間でのデリゲート以外のイベント通知&値渡し方法

投稿者: Anonymous

http://qiita.com/osamu1203/items/6dedc01e3b975a0ceec4

例として上記のようなUIViewController間で値を渡したいときに、デリゲートを使っていますが、デリゲート以外の方法として、どのようなやり方がより簡易にできますか?

ParentViewControllerのインスタンスをModal側で扱えばよいのだと思いますが、どのように書いたらよろしいのでしょうか?

少し曖昧な相談ですが、よろしくお願いします。

解決

ParentViewControllerのインスタンスをModal側で扱えばよいのだと思いますが

 という点については、ModelViewController 側で self.presentingViewController にアクセスすることでそのインスタンスを取得できます。型キャスト(as)は忘れないように。

let parentVC = self.presentingViewController as ParentViewController
let text = parentVC.modalTextLabel.text!
println(text)

 しかし、なぜデリゲートのようなパターンがよく使われているかと言えば、処理の実装場所を適切な担当者に振り分けるためですので、モーダル側が親を取得してそこで行うべき処理なのかは十分考える必要があります。

回答者: user5443

Leave a Reply

Your email address will not be published. Required fields are marked *