Ошибка при просмотре с помощью 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 или нет. И ошибка не произойдет.

  • iOS7 - Строка состояния с определенным цветом
  • Уведомление о повороте строки состояния
  • Как изменить цвет панели состояния iOS в контроллере детского представления
  • полноэкранное фоновое изображение при использовании uinavigationcontroller
  • UIViewControllerAnimatedTransitioning с UIStatusBarAnimation
  • iOS 7: UITableView отображается в строке состояния
  • iOS - строка состояния случайным образом становится сплошной черной
  • UISearchController изменение цвета строки состояния при вызове
  • Правильный способ скрыть строку состояния в iOS, с анимацией и изменением размера корневого представления
  • Добавить вид между строкой состояния и панель навигации
  • iOS7 UIStatusBar нечеткое размытие
  • Interesting Posts

    Как скомпилировать раскадровку на детской площадке

    Как связать приложение iPhone с типом _every_?

    Могу ли я по-прежнему отключить биткод для iOS, если одна или несколько библиотек имеют биткод?

    Обновление UIImage на UiBarButtonItem от идентификатора к изображению

    Компиляция Libical для arm64 и x86_64 для iOS

    Зачем использовать свойства?

    Выполнение прокрутки UITableView при выборе текстового поля

    iOS – AWS MobileHub вступает с поставщиком, прошедшим проверку подлинности разработчика

    FBSDKLoginBehaviorSystemAccount не работает

    Горизонтальное ограничение не работает корректно в UIScrollView. (программные ограничения)

    Слишком много экземпляров этой службы уже запущены

    Как отклонить клавиатуру цифровой клавиатуры, нажав в любом месте

    Swift – создание GIF из изображений и превращение его в NSData

    Восстановление штата, как перехватить и приостановить SKScene

    Ткань – Не удается завершить загрузку

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