У меня есть приложение с двумя контроллерами просмотра, ViewController и NextViewController. ViewController не имеет панели навигации и имеет белую строку состояния. У NextViewController есть панель навигации и черная (по умолчанию) строка состояния. Я столкнулся с ошибкой при возврате к ViewController из NextViewController и отмене смахивания, когда панель навигации в NextViewController исчезла. Раскадровка просто имеет два представления с кнопкой и переходом к действию. Ошибка возникает не всегда, но достаточно часто, чтобы быть проблемой. Ошибка связана с методом - (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 5s с iOS 8, но она также возникает на симуляторе с iOS 9. Внешний вид строки состояния на основе контроллера View установлен по умолчанию, YES.