Отключить поворот экрана сиба в swift - PullRequest
0 голосов
/ 01 ноября 2018

Я создал динамический фреймворк в swift, в котором файл .xib внутри моего фреймворка открывается всякий раз, когда появляется VoIP-уведомление. Я хочу ограничить ориентацию экрана только портретным режимом, но я не уверен, как это сделать.

Я пробовал методы ниже, но они могут использоваться только в UIViewController, а не в UIView.

override var shouldAutorotate: Bool {
    return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return .portrait
}

1 Ответ

0 голосов
/ 12 декабря 2018

Через столько времени я наконец-то нашел решение. Я создал класс контроллера представления в моей структуре, из которой я открываю файл .xib. Я включил следующую функцию в недавно созданный контроллер вида

override var shouldAutorotate: Bool {
    return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return .portrait
}

Теперь перед открытием .xib я представляю этот view-контроллер поверх текущего контроллера представления, т.е. я вызывал этот view-контроллер из своего собственного файла, примерно так

self.navCtrl? .Present (self, animated: false, завершение: nil)

при этом мой .xib-файл открывается над view-контроллером моей платформы, а не над контроллером представления приложения. чтобы закрыть этот viewcontroller, просто используйте

dismiss(animated: false, completion: nil)

Следовательно, проблема решена.

...