在根视图中隐藏导航栏?

时间:2012-07-07 18:58:48

标签: iphone cocoa-touch

我有一个应用程序,我正在尝试复制我看到Apple Store应用程序正在执行的操作,其中第一个视图没有导航栏,但后续视图会执行此操作。

我尝试过将navigationBarHidden设置为YES和NO来管理何时可见的各种组合,但关键问题似乎是在转换期间,它是可见的还是不可见的,而在Apple Store应用中,主视图中没有导航栏,但是从子视图右侧滑入。

我正在寻找的方法是让导航栏与子视图一起滑入,在转换之前或之后不显示(动画或不显示)。

3 个答案:

答案 0 :(得分:1)

原来我没有点击正确的地方隐藏并显示导航栏。

我使用了how to hide navigationbar when i push from navigation controller?的答案,现在对我很有用。

答案 1 :(得分:0)

在主视图中,初始化childViewController。然后在childViewController上设置导航栏,推送视图控制器。

ChildVC *childVC = [[ChildVC alloc] initWithNibName:@"ChildVC" bundle:nil];
[self setChildVC:childVC];
childVC.navigationController.navigationBarHidden = NO;
[self.navigationController pushViewController:childVC animated:YES];

答案 2 :(得分:0)

如果您正在谈论他们在第一个“精选”标签上执行的操作,那么如果您使用披露指示符点击列表中的某个项目。它似乎从右到左滑动到另一个视图中。我认为他们正在使用动画交换两个视图控制器。在IS导航控制器中滑动的那个,这就是为什么NavBar似乎从右边滑入。

你会做这样的事情来达到这个效果:

// First set up a view controller with frame set off to the right of the screen.
// Then animate it sliding to the left by setting its frame x = 0;

frame.origin.x = 0;
[UIView animateWithDuration:.4 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut
    animations:^{
        vc.view.frame = frame;
    }
    completion:nil];