0

Я пытаюсь повторно использовать контроллер представления (назовем его aVC) в потоке приложения. Я могу показать aVC либо модальным представлением, либо нажатием на контроллер просмотра на navigationController.Скрытие left/rightBarButtonItem на основе представления контроллера представления

У меня есть правыйBarButtonItem код во взгляде действительно загрузился, что setup right bar button item, который я использую только тогда, когда aVC представлен модально. Мне было интересно, есть ли способ скрыть эту кнопку, когда я использую pushViewController для aVC вместо модальной презентации.

ответ

0

Вы можете обнаружить, если вид выталкиваются или представлен многими способами:

1) обнаружения существования навигационного контроллера (толкаемый)

if self.navigationController?.viewControllers.count > 0 
{ 
    if self.NavigationItem != nil 
    { 
     self.NavigationItem!.setLeftBarButtonItem(nil, animated: false) 
     self.NavigationItem!.setRightBarButtonItem(nil, animated: false) 
    } 
} 

2) обнаружить, если точка зрения (Представлено модально)

if self.presentingViewController != nil 
{ 
    //View is presented 
} 

Затем, чтобы показать/скрыть кнопки вы можете использовать

for item in self!.navigationItem.leftBarButtonItems! // may be rightBarButtonItems! 
    { 
     item.enabled = true 
     item.tintColor = UIColor.whiteColor() You can change color 
    } 

// To hide items 
     if self.navigationItem.leftBarButtonItems != nil 
     { 
      for item in self.navigationItem.leftBarButtonItems! 
      { 
       item.enabled = false 
       item.tintColor = UIColor.clearColor() 
      } 
     } 

или вы можете установить кнопки как ноль

if self.NavigationItem != nil 
{ 
    self.NavigationItem!.setLeftBarButtonItem(nil, animated: false) 
    self.NavigationItem!.setRightBarButtonItem(nil, animated: false) 
} 
+0

Спасибо !, Это именно то, что я искал. – slonkar