У меня проблема с изменением ориентации в моем приложении. Мое приложение поддерживает ориентацию устройства Portrait, LandscapeLeft и LandscapeRight, и я на 100% уверен, что правильно настроил его в Info.plist. Когда я запускаю свое приложение на своем iPhone / симуляторе и поворачиваю устройство, ни одно из моих приложений ViewController не реагирует на вращение. То есть ни один ViewControllers не может быть переведен в ландшафтный режим независимо от того, насколько сильно и безумно я поворачиваю свой телефон. Я попытался переопределить переменную «Автоповорот», чтобы вернуть истину / ложь, тот же результат, Мое приложение придерживается одного портретного режима, чего я не хочу. Итак, я подумал, что, может быть, мое приложение даже не может обнаружить изменение ориентации устройства; поэтому я поместил следующий код в свой AppDelegate, и я был прав, функция «deviceOrientationDidChange» никогда не вызывается, когда я поворачиваю свой телефон, но она вызывается, когда приложение входит в фоновый режим. У кого-нибудь есть подсказки? Я боролся с этим в течение нескольких дней и пытался найти решение в Интернете, но без надежды. Пожалуйста помоги.
UIDevice.current.beginGeneratingDeviceOrientationNotifications()
let notifiCenter = NotificationCenter.default
notifiCenter.addObserver(self, selector: #selector(self.deviceOrientationDidChange(_:)), name: .UIDeviceOrientationDidChange, object: nil)
func deviceOrientationDidChange(_ notification: Notification) {
print("device orientation did change...")
}
application.statusBarOrientation = .portrait
. Если вы удалите эту строку из AppDelegate и запустите приложение на iPad уже в альбомной ориентации, будет ли оно по-прежнему запускаться в портретной ориентации? - person DonMag   schedule 19.04.2017