Подтвердить что ты не робот

UINavigationController без навигационной панели?

У меня есть универсальное приложение, а в версии iPad я использую UISplitViewController для создания интерфейса, подобного приложению Mail.

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

Я попытался снять флажок "Показывает панель навигации" в IB, и я также попробовал установку:

[self.navigationController setNavigationBarHidden:YES];

в viewDidLoad/viewDidAppear/viewWillAppear. Я также пробовал это в каждом из видов, которые будут нажаты. Ничего не работает.

Есть ли что-то, что мне здесь не хватает? Возможно ли иметь UINavigationController без панели инструментов или панели навигации?

4b9b3361

Ответ 1

Вы должны быть в состоянии сделать следующее:

self.navigationController.navigationBar.hidden = YES;

где self.navigationController(очевидно) является экземпляром UINavigationController. Кажется, работает для меня, но я только кратко протестировал его, прежде чем публиковать это.

Ответ 2

В Xcode 4.3.2:

  • Выберите контроллер навигации в раскадровке
  • Выберите инспектор атрибутов на панели (справа).
  • В категории "Контроллер навигации" есть два флажка:

    [] Показывает панель навигации

    [] Показывает панель инструментов

Работал для меня...

Ответ 3

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

self.navigationController.navigationBarHidden = YES;

Это даст вам следующий результат:

enter image description here

В то время как self.navigationController.navigationBar.hidden = YES; дает вам пробел, в котором должен находиться navigationBar. Вот так:

enter image description here

Ответ 4

Swift 3 Программно

self.navigationController.isNavigationBarHidden = true

или

self.navigationController.navigationBar.isHidden = true

Примечание. Я не видел разницы между этими двумя подходами к тестированию на iOS 10.

Ответ 5

Swift 4

Я скрываю его в viewWillAppear

     override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        self.navigationController?.isNavigationBarHidden = true;
    }

Затем вы можете вернуть его, когда вы нажимаете segue (если вы хотите, чтобы кнопка "Назад" на следующем представлении)

     override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
     {
        self.navigationController?.isNavigationBarHidden = false;
     }