2013-02-19 2 views
3

В чем разница между этими двумя утверждениями. для скрытия панели навигации я использую один из этого заявления, чтобы скрыть панель навигации в методе viewWillAppear, как указано ниже:self.navigationController.navigationBar.hidden = true; Vs [self.navigationController.navigationBar setHidden: YES];

-(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]; Это не работает. Почему?

К сожалению Друзья была допущена ошибка в question.Now исправлен см снова

+0

Нет отличий .. !! – rptwsthi

ответ

0

Этот код: self.navigationItem.hidesBackButton = YES; фактически скрывает кнопку назад

, которые отображают на панели навигации. Этот код:

self.navigationController.navigationBar.hidden=false; 

На самом деле не скрывайте свою навигационную панель, на которой отображается панель навигации в верхней части экрана.

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]; 
0

Может быть ваш код будет работать chan ging YES to NO

Вы можете использовать setNavigationBarHidden: анимированный: работает для меня.

-(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]; 
} 
0

Если вы хотите, чтобы скрыть Панель навигации, вы должны использовать это: -

self.navigationController.navigationBarHidden = YES; 

Или

[self.navigationController setNavigationBarHidden:YES]; 

И это прекрасно работает каждый раз.

И ваше дело должно работать нормально, но, как мы все можем видеть, это всего лишь некоторая внутренняя несогласованность iOS.

1

self.navigationItem.hidesBackButton = NO;

Это только скроет BackButton панели навигации.

self.navigationController.navigationBar.hidden = false;

Это скроет панель навигации, включая ее BackButton.

self.navigationController.navigationBar.hidden = true;

Это позволит использовать навигационную панель.

self.navigationItem.hidesBackButton = YES;

Это позволит использовать BackButton навигационной панели (пока панель навигации не будет скрыта).

4

FWIW, я сталкивался с ситуацией, сегодня в IOS 6, где:

self.navigationController.navigationBar.hidden = YES; 

появились иметь нулевой эффект. Что это за работа:

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

Что более фантастично, так это то, что я использовал миллионы раз 'self.navigationController.navigationBar.hidden = YES;' но это один раз, он не работает и '[self.navigationController setNavigationBarHidden: YES animated: NO];' is , Мне нравится этот багги, который яблоко толкает. Ради Бога, Apple. БЛАГОДАРЮ. – SpaceDog

Смежные вопросы