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

时间:2013-02-19 04:50:37

标签: iphone uinavigationbar

这两个陈述之间有什么区别。 对于隐藏导航栏,我使用其中一个语句来隐藏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]时;它不起作用。为什么?

对不起朋友有问题。现在请更正,请再次查看

6 个答案:

答案 0 :(得分:4)

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

self.navigationController.navigationBar.hidden = YES;

似乎没有效果。做了什么工作:

[self.navigationController setNavigationBarHidden:YES animated:NO];

答案 1 :(得分: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]; 

答案 2 :(得分:1)

self.navigationItem.hidesBackButton = NO;

这只会隐藏导航栏的BackButton。

self.navigationController.navigationBar.hidden = false;

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

self.navigationController.navigationBar.hidden = true;

这将启用导航栏。

self.navigationItem.hidesBackButton = YES;

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

答案 3 :(得分:0)

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

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

 self.navigationController.navigationBar.hidden=false;

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

答案 4 :(得分: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];
}

答案 5 :(得分:0)

如果要隐藏navigationBar,您应该使用: -

self.navigationController.navigationBarHidden = YES;

或者

[self.navigationController setNavigationBarHidden:YES];

每次都很好。

无论如何你的情况应该可以正常工作,但正如我们所看到的,这只是iOS的一些内部不一致。