я нашел трудный путь, чтоВ чем разница между navigationController.navigationBarHidden и navigationController.navigationBar.hidden?
navigationController.navigationBarHidden = NO;
и
navigationController.navigationBar.hidden = NO;
являются не то же самое. Фактически, если я использую первый синтаксис, чтобы скрыть панель навигации, то я не могу использовать второй синтаксис, чтобы показать его: он просто ничего не сделает. Более того, первый синтаксис для отображения/скрытия навигационной панели всегда работает для меня, а второй синтаксис работает несколько раз, но не всегда. Я не смог точно определить, когда это будет работать, а когда нет.
Как я застрял с закреплением чужого кода (достаточно большой приложения: более 20 UIViewControllers), я должен был сделать глобальный поиск по navigationBar.hidden
и заменить его navigationBarHidden
. После этого мне пришлось выполнить глобальный поиск по navigationBar setHidden:
и заменить на синтаксис navigationBarHidden
. В конечном итоге это решило проблему.
Тем не менее, я хочу понять, почему предлагаются два разных варианта и какова реальная разница между ними.
Хорошо, это начинает иметь смысл. Это означает, что я не должен использовать 'navigationBar.hidden' напрямую, но вместо этого использовать' navigationBarHidden' - правильно? –
Да, похоже, это так, поскольку у вас есть явное свойство, которое скрывает и показывает navBar –
@AleksG, пожалуйста, прочитайте обновленный ответ –