2013-10-31 80 views
4

我有視圖控制器轉換,如vc1 - > vc2 - > vc1。我需要將UINavigationBar隱藏在vc1中,並顯示在vc2中。iOS 7 UINavigationBar在視圖轉換時未隱藏

我做到以下幾點:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    self.navigationController.navigationBarHidden = YES; 
} 

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 

    self.navigationController.navigationBarHidden = NO; 
} 

在iOS6的,它工作正常。但在iOS7中,當我從vc1返回到vc2時,導航欄並未隱藏,而是在狀態欄後方向上移動,在轉換動畫完成後,該欄已隱藏。

我怎樣才能真正隱藏導航欄?

回答

4

嘗試這樣的:

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

-(void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 

    [self.navigationController setNavigationBarHidden:NO]; 
} 

或嘗試這樣的:

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

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; 
    [super viewWillDisappear:animated]; 
} 
+1

感謝。使用[self.navigationController setNavigationBarHidden:YES animated:animated]的作品! – tagtraum

0

在VC2控制器把這個 - viewDidLoad中

[self.navigationController setNavigationBarHidden:NO]; 

在VC1控制器把這個-viewDidLoad

[self.navigationController setNavigationBarHidden:YES]; 

然後VC1增加,這也

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

我希望這將是對你有幫助...

相關問題