在iPhone上使用导航栏的神秘功能!

问题描述:

我正在用导航控制器通过故事板制作一个应用程序Xcode 4.2在iPhone上使用导航栏的神秘功能!

我想在每个视图加载时隐藏所有的导航栏,点击屏幕顶部的按钮,导航栏应该显示几秒钟(我已经使用了NStimer),然后再次隐藏。

到目前为止,我已经设法做到了这一点,但问题是,当我推另一个视图,然后返回到前一个视图,该按钮可以被点击,但导航栏不会再次出现。

这里是我的代码:

-(void)viewDidLoad 
{ 
    [self.navigationController setNavigationBarHidden:YES animated:YES]; 
} 

-(IBAction)top { 
    [self.navigationController setNavigationBarHidden:NO animated:YES]; 
    hideNavTimer = [NSTimer scheduledTimerWithTimeInterval:3 
    target:self selector:@selector (HideNav)  userInfo:nil repeats:NO]; 
} 

-(void)HideNav { 
    [self.navigationController setNavigationBarHidden:YES animated:YES]; 
    [hideNavTimer invalidate]; 
    hideNavTimer=nil; 
} 

我在每个视图我推使用此代码。

我在做什么错?

+0

请人? –

+0

我认为问题出在segue模式转换。有人可以帮我吗? –

你应该把它放在viewWillAppear中:

-(void)viewWillAppear:(BOOL)animated: 
{ 
    [super viewWillAppear:animated]; 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
} 
+0

我做过了,但当您返回到前一个视图时,它仍然不会显示导航栏。 –

+0

我做了一个测试。在您提供的代码中,我切换了setNavigationBarHidden:NO。当我回到这个视图时,导航栏应该是可见的,但它不是。我想,当你从一个视图返回到前一个时,某些东西会保持“setNavigationBarHidden:YES”..... –