I have a view controller hierarchy and the top-most controller is displayed as a modal and would like to know how to display the navigation bar when using
'UIViewController:presentViewController:viewControllerToPresent:animated:completion'
The docs for 'presentViewController:animated:completion:' note:
'On iPhone and iPod touch, the presented view is always full screen.
On iPad, the presentation depends on the value in the
modalPresentationStyle property.'
For 'modalPresentationStyle', the docs say:
The presentation style determines how a modally presented view controller is displayed onscreen. On iPhone and iPod touch, modal view controllers are always presented full-screen, but on iPad there are several different presentation options.
Is there way to ensure that the navigation bar is visible below the status bar once the view control displays itself? Should I interpret the doc as, you don't get any options of iPhone/iPod and only on iPad?
Previously, I was using 'UIViewController:presentModalViewController:animated'
which worked fine, but since iOS 5.0, the API has been deprecated so I'm switching over to the new one.
Visually, what I'm looking to do is have the new controller slide in from the bottom of the screen, just like the old API used to do.
[updating with code]:
// 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];
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…