2014-01-14 44 views
1

我對iOS很新。我有一個嵌入的UINavigationController一個UIViewController,我通過將此代碼添加到viewDidLoad方法隱藏在第一視圖欄:在iOS之間切換iOS中的UINavigationController欄

if (self) { 
    self.navigationController.navigationBarHidden = YES; 
    self.navigationItem.title = @""; 
} 

然後我連接用塞克(通過按鈕觸發此查看到另一個的UIViewController在第一個視圖),並將此代碼添加到它的viewDidLoad方法:

if(self)self.navigationController.navigationBarHidden = NO;

一切工作正常。當我加載應用時,導航欄消失了,當我導航到第二個(子)視圖時,酒吧就在那裏。然後,當我點擊後退按鈕時,它會回到第一個(父)視圖,但NavBar回來了。

我嘗試添加命名塞克「BackToMain」並加入prepareSeque方法,我放在第二個觀點:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"BackToMain"]) { 

     UINavigationController *parentNavigationController = segue.destinationViewController; 
     parentNavigationController.navigationController.navigationBarHidden = YES; 
    } 
} 

但它永遠不會被調用。

理想情況下,我會在父視圖中放置一個方法,以在每次顯示時隱藏NavBar。就像:

- (void)processIncomingSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
if (self) self.navigationController.navigationBarHidden = NO; 
} 

但我真的不知道這是可能的。

回答

3

把下面的代碼放在你的視圖控制器中,它應該是而不是有一個UINavigationBar

- (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

完美!所以很快重播。非常感謝Pfitz。 – solerous

相關問題