3

这两种说法有什么区别。为了隐藏导航栏,我使用以下语句之一在 viewWillAppear 方法中隐藏导航栏,如下所示:

 -(void)viewWillAppear:(BOOL)animated
{
    self.navigationController.navigationBar.hidden=true;   //works....
}

 -(void)viewWillAppear:(BOOL)animated
{
    [self.navigationController.navigationBar setHidden:YES]; //doesn't work...
}

此代码适用于 self.navigationController.navigationBar.hidden=true; 但是当我使用 [self.navigationController.navigationBar setHidden:YES]; 它不起作用。为什么会这样?

对不起朋友有一个错误的问题。现在更正请再看

4

6 回答 6

4

FWIW,我今天在 iOS 6 中遇到了一种情况:

self.navigationController.navigationBar.hidden = YES;

似乎效果为零。起作用的是:

[self.navigationController setNavigationBarHidden:YES animated:NO];
于 2014-04-28T19:48:00.737 回答
1

self.navigationItem.hidesBackButton = 否;

这只会隐藏导航栏的 BackButton。

self.navigationController.navigationBar.hidden = false;

这将隐藏导航栏,包括其 BackButton。

self.navigationController.navigationBar.hidden = true;

这将启用导航栏。

self.navigationItem.hidesBackButton = 是;

这将启用导航栏的 BackButton(直到导航栏设置为隐藏)。

于 2013-02-19T05:15:55.440 回答
1

不同的是一个隐藏它,另一个显示它:)

YES = TRUE 
NO = FALSE

隐藏导航栏

self.navigationController.navigationBar.hidden=TRUE;
[self.navigationController.navigationBar setHidden:YES]; 

显示导航栏

 self.navigationController.navigationBar.hidden=FALSE;
[self.navigationController.navigationBar setHidden:NO]; 
于 2013-02-19T05:04:41.183 回答
0

这段代码:self.navigationItem.hidesBackButton = YES;实际上隐藏了后退按钮

显示在导航栏上。这段代码:

 self.navigationController.navigationBar.hidden=false;

实际上不要隐藏您的导航栏,它会在您的视图顶部显示导航栏。

于 2013-02-19T05:03:15.173 回答
0

当你想隐藏导航栏时,你应该使用这个: -

self.navigationController.navigationBarHidden = YES;

或者

[self.navigationController setNavigationBarHidden:YES];

而且每次都能正常工作。

无论如何,您的案例应该可以正常工作,但正如我们所见,这只是 iOS 的一些内部不一致。

于 2013-02-19T05:14:05.307 回答
0

也许您的代码可以将 YES 更改为 NO

您可以使用 setNavigationBarHidden:animated: 为我工作。

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}
-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}
于 2013-02-19T05:11:18.527 回答