Avatar
えっとまず UIKit の UIViewController は presentingViewController が presentedViewController を管理するので、基本的には UIViewController が自身のpresentation状態をコントロールするのはオカシイです。例えば、modal view controller が自分自身を dismiss するような実装は UIKit のルールに反しています。(encapsulation... とか思ってそういうAPIを提供したり、実装してしまうことは多いのですが。)
1:22 AM
したがって正しくは、presentedViewControllerはdismissのイベントをpresentingViewControllerに渡すだけで、dismissするかどうかはpresentingViewControllerで実装するようにします。具体的にはdelegateなどでイベントを渡します。
1:23 AM
そのような実装の場合、presentingViewControllerはpresentedViewControllerのライフサイクル、状態すべてに責任があり、またそれらにアクセスできるため、例えば、modalで表示されたview controllerで設定された値を受け取ることは素直に実装できるはずです。