2011-11-24 51 views
0

我正在用導航控制器通過故事板製作一個應用程序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模式轉換。有人可以幫我嗎? –

回答

2

你應該把它放在viewWillAppear中:

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

我做過了,但當您返回到前一個視圖時,它仍然不會顯示導航欄。 –

+0

我做了一個測試。在您提供的代碼中,我切換了setNavigationBarHidden:NO。當我回到這個視圖時,導航欄應該是可見的,但它不是。我想,當你從一個視圖返回到前一個時,某些東西會保持「setNavigationBarHidden:YES」..... –