ビューコントローラーの階層があり、最上位のコントローラーがモーダルとして表示され、使用時にナビゲーションバーを表示する方法を知りたい
'UIViewController:presentViewController:viewControllerToPresent:animated:completion'
「presentViewController:animated:completion:」に関するドキュメントのメモ:
'iPhoneおよびiPod touchでは、表示されるビューは常にフルスクリーンです。iPadでは、プレゼンテーションはmodalPresentationStyleプロパティの値に依存します。
「modalPresentationStyle」の場合、ドキュメントは次のように述べています。
表示スタイルは、モーダルに表示されたビューコントローラが画面に表示される方法を決定します。iPhoneおよびiPod touchでは、モーダルビューコントローラーは常にフルスクリーンで表示されますが、iPadではいくつかの異なる表示オプションがあります。
ビューコントロールが表示されたら、ステータスバーの下にナビゲーションバーが表示されるようにする方法はありますか?ドキュメントを次のように解釈すると、iPhone / iPodのオプションが表示されず、iPadでのみ表示されますか?
以前'UIViewController:presentModalViewController:animated'
はうまく機能していたものを使用していましたが、iOS 5.0以降、APIが廃止されたため、新しいAPIに切り替えています。
視覚的には、以前使用していた古いAPIと同じように、画面の下部から新しいコントローラーをスライドさせます。
[コードで更新]:
// My root level view:
UIViewController *vc = [[RootViewController alloc]
initWithNibName:nil
bundle:[NSBundle mainBundle]];
navController = [[UINavigationController alloc] initWithRootViewController:vc];
....
// Within the RootViewController, Second view controller is created and added
// to the hierarchy. It is this view controller that is responsible for
// displaying the DetailView:
SecondTierViewController *t2controller = [[SecondTierViewController alloc]
initWithNibName:nil
bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:t2controller animated:YES];
// Created by SecondTierViewController
DetailViewController *controller = [[DetailViewController alloc] initWithNibName:nil
bundle:[NSBundle mainBundle]];
controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
controller.modalPresentationStyle = UIModalPresentationCurrentContext;
[self.navigationController presentViewController:controller
animated:YES
completion:nil];