2012-08-30 52 views
1

我有rootViewController与NavigationController。在rootView导航栏上隐藏。当我推下一个视图navBar显示。所以当我从第二个视图返回到rootView navBar隐藏。没关系。然后我想从第二个视图转到第三个视图并显示navBar。但它是隐藏的,因为在第二个观点我有这样的代码隐藏导航栏在rootView时,从第二个观点去它:显示和隐藏导航栏不同的意见

-(void)viewWillDisappear:(BOOL)animated{ 
    [super viewWilDisappear:animated]; 
    [self.navigationcontroller setNavigationBarHidden:YES animated:YES]; 
} 

如何显示仅在rootView导航栏和隐藏所有其他的意见? ?

第二个视图是UIViewController的子类,第三个视图也是IB创建的UITableView的UIViewController的子类。


UPD

在第一个的viewController我已经添加了这一点:

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

} 

-(void)viewWillAppear:(BOOL)animated{ 

    [super viewWillAppear:animated]; 
    [self.navigationController setNavigationBarHidden:YES animated:YES]; 
} 

-(void)viewWillDisappear:(BOOL)animated{ 

    [super viewWillDisappear:animated]; 
    [self.navigationController setNavigationBarHidden:NO animated:YES]; 
} 

,第三列是:

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

感谢您的帮助,伙计们!如果你想展示的是你的第二个导航栏

-(void)viewDidAppear:(BOOL)animated 
    { 
     [self.navigationcontroller setNavigationBarHidden:NO animated:YES]; 

} 
+0

请重新设置您的问题。理解你的意思真的很难!哪个视图控制器应该显示导航栏? – mvb

+0

第二个和第三个视图控制器应显示导航栏。 – pash3r

+0

请将正确答案标记为正确答案! – Fab1n

回答

1
在第三视图的

viewWillAppear中补充一点:

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

感谢您的回答! – pash3r

1

试试这个: -

在thirdView写第三个ViewControllers只需将以下内容添加到您的viewWillAppear或viewDidLoad方法中:

self.navigationController.navigationBarHidden = NO; 

这是在您的UINavigationController具有(强)属性的情况下,我建议您应该拥有该属性。