Я думаю, проблема в том, как вы на самом деле получаете ориентацию устройства.По моему опыту self.interfaceOrientation
не всегда надежен.
Есть несколько способов получить текущее значение UIInterfaceOrientation
, но, насколько я понимаю, получение ориентации из строки состояния является единственным относительно эффективным методом, поэтому попробуйте использовать его вместо этого:
[UIApplication sharedApplication].statusBarOrientation
Напоминание - UIInterfaceOrientation
и UIDeviceOrientation
- это не одно и то же!Они также могут обновляться в разное время в зависимости от того, как вы их инициализируете.
Вы также можете проверить этот ответ на аналогичный вопрос.