隐藏ios 5中导航控制器中的默认导航栏

时间:2012-03-26 10:26:52

标签: ios5 uinavigationcontroller uinavigationbar storyboard show-hide

我正在使用故事板为iOS 5编程。 我正在尝试使用导航控制器创建一个应用程序。 在我的应用程序中,我希望一些视图控制器有导航栏,有些我不想。

我使用以下link作为我的指导来创建一个。

这就是我以编程方式隐藏导航栏的方式:

在MyAppDelegate中,我声明了一个变量:

UINavigationController *navigationController;

@property (strong, nonatomic) IBOutlet UINavigationController *navigationController;

在我的UIViewController中,这是第一个UIViewController,我做了以下

- (void)viewDidload
{
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    [super viewDidUnload];

    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

但这不起作用......

如何让它发挥作用?

2 个答案:

答案 0 :(得分:3)

拉​​吉,

尝试将这两个函数添加到您的UIViewController:

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

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

答案 1 :(得分:0)

Navigation Controller中选择story board,转到attributes inspector,有一个名为Shows Navigation Bar的复选框,取消选中它。

如果在setNavigationBarHidden:YES中设置viewWillAppear:,动画(隐藏导航栏)仍会显示。

这是主要区别。