Ошибка при просмотре с помощью uinavigationbar до одного без

У меня есть приложение с двумя viewcontrollers, ViewController и NextViewController. ViewController не имеет навигационной панели и имеет белую строку состояния. NextViewController имеет панель навигации и имеет черную (стандартную) строку состояния. Я столкнулся с ошибкой при возврате в ViewController из NextViewController и отмене салфетки, где панель навигации на NextViewController исчезнет. Раскадровка просто имеет два вида с кнопкой и действие segue. Ошибка не всегда происходит, но часто достаточно, чтобы быть проблемой. Ошибка связана с методом - (UIStatusBarStyle) preferredStatusBarStyle , так как все отлично работает, когда я - (UIStatusBarStyle) preferredStatusBarStyle методы.

Могу ли я каким-то образом остановить эту ошибку, пока у меня еще есть белая строка состояния на моем ViewController и активирована салфетка, или я вынужден удалить любую функциональность?

ViewController

 @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self setNeedsStatusBarAppearanceUpdate]; } - (void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:YES animated:YES]; } - (UIStatusBarStyle) preferredStatusBarStyle { return UIStatusBarStyleLightContent; } 

NextViewController

 @implementation NextViewController - (void)viewDidLoad { [super viewDidLoad]; [self setNeedsStatusBarAppearanceUpdate]; } - (void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:NO animated:YES]; } -(UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleDefault; } 

Другая возможная информация: Опытная проблема на iPhone 5 с iOS 8, но это также происходит на симуляторе с iOS 9. Просмотр состояния панели управления на основе контроллера устанавливается по умолчанию, YES.

One Solution collect form web for “Ошибка при просмотре с помощью uinavigationbar до одного без”

Стиль строки состояния зависит от - preferredStatusBarStyle контроллера вида, если панель навигации скрыта, в противном случае контроллера навигации, поэтому - preferredStatusBarStyle в вашем NextViewController бесполезен.

Похоже, что ошибка связана со стилем строки состояния навигационного контроллера, вы можете подклассифицировать UINavigationController переопределить метод childViewControllerForStatusBarStyle, чтобы избежать ошибки.

 @implementation MyNavigationController - (UIViewController *)childViewControllerForStatusBarStyle { return self.topViewController; } @end 

Теперь стиль строки состояния будет зависеть от контроллера просмотра независимо от того, скрыта ли панель навигации navaigation или нет. И ошибка не произойдет.

  • iOS 7: UITableView отображается в строке состояния
  • Как мы можем установить стиль Light Content в строке состояния в iOS 9 для всего приложения?
  • Динамическая строка состояния UIScrollView
  • iOS7 UIStatusBar нечеткое размытие
  • Установите строку состояния на черный цвет
  • iOS7 объединяет панель состояния и панель инструментов
  • Фон строки состояния исчезает, скрываясь на iOS 11
  • Просмотр автоматической настройки при смене приложений с помощью строки состояния, скрытой
  • Как использовать modalPresentationCapturesStatusBarAppearance = НЕТ с пользовательским UIPresentationController?
  • setNeedsStatusBarAppearanceUpdate сбой моего приложения
  • Проблема с IOS 7 StatusBar при использовании UIImagePickerController Разрешить редактирование
  • Interesting Posts

    Как отключить окно сообщений для текстовых сообщений в приложении ios

    Как использовать Stripe Connect в приложении iOS

    Как вы используете Core Location без разрешения пользователя или предоставления разрешения?

    Преобразование NSString в Float – добавляет в десятичные места?

    Параметры универсальных ссылок iOS и GET

    Доступ к AsyncStorage из собственного кода

    UIWebView не может щелкнуть ссылку

    Используйте переднюю и заднюю (первичную и вторичную) камеру одновременно на устройстве iOS

    Белое пространство в верхней части таблицыView, встроенное в вид контейнера

    Ошибка при установке Google-Mobile-Ads-SDK

    Учитывая URL-адрес фильма, как получить его информацию?

    Цель C – Избегайте импорта

    Прокрутка останавливает анимацию iOS

    Внедрение архитектуры плагинов для iOS с использованием Bundles

    iOS – невозможно обработать изображение с помощью CIFilter

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.