2014-08-01 1 views
8

Я добавил свою левую кнопку навигации, используя раскадровку. но я хочу, чтобы он спрятался, когда я впервые загрузил экран. И затем в ответ на что-то еще, я хочу, чтобы он показывал. На панели навигации есть метод скрытия кнопки «Назад». Но нет способа скрывать/показывать левую кнопку. Есть ли простой способ сделать это? Или мне нужно использовать два метода: метод скрытия создает пустую кнопку, а метод показа создает правильную кнопку? Эта кнопка - это только шаблон Add, который предоставляет iOS (что упрощает использование только одного в раскадровке, чем создание моего собственного).скрыть и показать левую кнопку навигации по требованию в iOS-7

ответ

30

Вот как я решил, что

-(void) hideAndDisableRightNavigationItem 
{ 
    [self.navigationItem.rightBarButtonItem setTintColor:[UIColor clearColor]]; 
    [self.navigationItem.rightBarButtonItem setEnabled:NO]; 
} 

-(void) showAndEnableRightNavigationItem 
{ 
    [self.navigationItem.rightBarButtonItem setTintColor:[UIColor blackColor]]; 
    [self.navigationItem.rightBarButtonItem setEnabled:YES]; 
} 
+0

Это сексуально. Лучшее решение для стека. –

+0

Я ссылался на это в своем ответе на аналогичный вопрос. Надеюсь, вы не против. http://stackoverflow.com/questions/5588767/how-do-i-hide-show-the-right-button-in-the-navigation-bar/27262875#27262875 –

+0

Вы спасли мое время) Thnx! работает для меня) – Nubaslon

-2

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

self.navigationController.navigationBarHidden = YES; 

На втором экране я хотел показать панель навигации, так что я установить:

self.navigationController.navigationBarHidden = NO; 
8

Swift версия @learner ответ

func hideAndDisableRightNavigationItem(){ 
    self.navigationItem.rightBarButtonItem?.enabled = false 
    self.navigationItem.rightBarButtonItem?.tintColor = UIColor.clearColor() 
} 

func showAndEnableRightNavigationItem(){ 
    self.navigationItem.rightBarButtonItem?.enabled = true 
    self.navigationItem.rightBarButtonItem?.tintColor = UIColor. blackColor() 
} 
+0

отлично работал для меня. –