Я, кажется, собрал решение, глядя на фрагменты в некоторых других темах. Я думаю, что это решило проблему.
У меня есть основной класс, который контролирует большую часть моего приложения. Он уже был зарегистрирован для получения уведомлений о повороте устройства, например:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
Я добавил несколько строк в функцию обработчика ориентации, чтобы вручную установить расположение строки состояния:
- (void) updateOrientation {
if ([[UIDevice currentDevice] orientation] < 5 && [[UIDevice currentDevice] orientation]>0) {
orientation = [[UIDevice currentDevice] orientation];
[UIApplication sharedApplication].statusBarOrientation = orientation;
}
}
Условное ограничение позволяет обработчику реагировать только на альбомную и портретную ориентации, а не вверх и вниз.
Если у кого-то есть лучшее решение, я все равно хотел бы услышать его, в противном случае, надеюсь, это поможет кому-то еще.