我目前有一个基于UINavigationController的应用程序,可以正常工作。我想采用UINavigationController堆栈中几层深度的视图控制器之一,以具有“翻转”类型的视图,如Utility应用程序等所示。这很常见。
这里的问题是,我创建了一个中间视图控制器来管理将要来回翻转的两个视图控制器。现在,中间视图控制器在层次结构中拦截并覆盖了它自己的navigationBar。现有视图控制器中的navigationBar被遮盖,其整个视图下移。
我尝试做类似的事情:
myFlipViewController.view = myOriginalViewController.view;
这打破了myOriginalViewController的整个视图,因为它具有自己的navigationItems。我基本上只希望myFlipViewController充当透明代理,它将控制翻转myOriginalViewController和othersideViewController。 myOriginalViewController中的navigationItems仍应显示。
我已经尝试过在视图控制器中设置setNavigationBarHidden,但似乎没有任何办法解决这个问题。
在UINavigationController堆栈中间引入flipViewController而不妨碍它的最佳方法是什么?
最佳答案
@implementation YourViewControllerInTheMiddleOfTheStack
- (void)presentFlipSideViewController:(UIViewController *)flipsideViewController
{
flipsideViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self.navigationController presentModalViewController:flipsideViewController animated:YES];
}
@end