在UINavigationController层次结构的中间添加Flip View类型控制器

时间:2009-07-06 18:23:28

标签: iphone cocoa-touch uinavigationcontroller

我目前有一个基于UINavigationController的应用程序,工作得很好。我想将其中一个视图控制器放在UINavigationController堆栈的几个层次,以获得实用程序应用程序等所示的“翻转侧”类型视图。非常常见。

这里的问题是我创建了一个中间视图控制器来管理将来回翻转的视图控制器。现在,中间视图控制器在层次结构中截取并覆盖navigationBar。来自现有视图控制器的navigationBar被屏蔽,其整个视图向下移动。

我尝试过这样的事情:

myFlipViewController.view = myOriginalViewController.view;

这会打破myOriginalViewController的整个视图,因为它有自己的navigationItems。我基本上只是希望m​​yFlipViewController充当透明代理,它将控制翻转myOriginalViewController和othersideViewController。来自myOriginalViewController的navigationItems仍应显示。

我在视图控制器中尝试了各种各样的setNavigationBarHidden,但似乎没有什么可以做的。

在UINavigationController堆栈中引入flipViewController而不让它受阻的最佳方法是什么?

2 个答案:

答案 0 :(得分:9)

@implementation YourViewControllerInTheMiddleOfTheStack

- (void)presentFlipSideViewController:(UIViewController *)flipsideViewController
{
    flipsideViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self.navigationController presentModalViewController:flipsideViewController animated:YES];
}

@end

答案 1 :(得分:-2)

- (void)presentFlipSideViewController:(UIViewController *)flipsideViewController
{
    flipsideViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self.navigationController presentModalViewController:flipsideViewController animated:YES];