2012-07-07 159 views
1

我有一个应用程序,我试图复制我看到的Apple Store应用程序在做什么,第一个视图没有导航栏,但随后的视图。在根视图中隐藏导航栏?

我已经尝试过设置navigationBarHidden到YES和NO的各种组合,以便在可见时进行管理,但关键问题似乎是在转换期间,它可以是可见的或不是,而在Apple Store应用程序中,导航栏不在主视图中,而是从右侧滑入子视图。

我在寻找的是一种让导航栏与子视图一起滑动的方式,而不是在过渡之前或之后出现(动画或不)。

+0

你是使用故事板还是使用xib文件? – 2012-07-07 19:22:02

+0

使用故事板。 – stevex 2012-07-07 22:38:21

回答

0

在你的主视图中,初始化childViewController。然后在childViewController上设置导航栏,按下视图控制器。

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

这对我来说是什么让导航控制器立即出现,而不是滑入。 – stevex 2012-07-07 20:53:27

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];