UIDeviceOrientation и UIInterfaceOrientation - это разные типы, первый - это ориентация устройства и включает в себя другие состояния, такие как «Лицо вверх» или «Лицо вниз», в то время как второй охватывает только состояния 2D, такие как «Портрет» и «Пейзаж».
Не получать ориентацию устройства с устройства, а из строки состояния, например:
[[UIApplication sharedApplication] statusBarOrientation]
Этот метод вернет значение UIInterfaceOrientation, и проблема исчезнет.