私はデュアル iPad/iPhone アプリケーションに取り組んでいます。
iPad のみで発生している問題があります。
- ルート ビュー コントローラーは、iPad では UISplitViewController、iPhone では UITabBarController です。
- ルート コントローラの上にモーダル UIViewController を表示できます
- モーダル UIViewController は、前のモーダル コントローラの上に表示できます
- iPad では、モーダル コントローラーは UIModalPresentationStyle.PageSheet を使用しています。
iPad から最上位のモーダル コントローラーを閉じる以外はすべて機能します。メソッドは呼び出されますが、モーダル ビュー コントローラーは閉じられません。前のモーダル コントローラーから DismissModalViewControllerAnimated を呼び出して閉じます。
これがiPadで機能しない理由はありますか?
いずれの場合も、親コントローラーから PresentModalViewController と DismissModalViewControllerAnimated を呼び出して、その子モーダル コントローラーを動作させます。
私は MonoTouch を使用しています (メソッドのケーシングでわかります) が、それはおそらく無関係です。Obj-C でも回答を得ることができます。
更新、以下はそれが何をすべきかをより明確にするかもしれません:
- ルート => モーダル A => モーダル B
- モーダル B を閉じると、モーダル A に戻るだけです
- Modal Aを閉じると、ルートに戻るだけです