Как отключить вращение в View Controller, когда происходят определенные действия c? - PullRequest
0 голосов
/ 12 января 2020

Есть ли конкретное c значение или метод View Controller для отключения вращения, в то время как выполняются определенные c действия? Например, я хочу разрешить вращение на этом контроллере вида на все время, кроме только одного.

func deleteAction(at indexPath: IndexPath) -> UIContextualAction {
let action = UIContextualAction(style: .destructive, title: "Remove") { (action, view, completion) in
    DispatchQueue.main.async {
        self.showActivityIndicator()
    }
    DispatchQueue.global(qos: .default).async {
        SingleTon.shared.deleteWordFromVocabulary(word: SingleTon.shared.getWords()[indexPath.section][indexPath.row], indexPath: indexPath.row)

        DispatchQueue.main.async {
            self.tableView.deleteRows(at: [indexPath], with: .automatic)
            self.stopActivityIndicator()
        }
    }
}

Когда появляется индикатор активности, я хочу отключить вращение моего контроллера просмотра. И когда мой индикатор активности исчезает, я хочу включить вращение View Controller обратно.

1 Ответ

0 голосов
/ 12 января 2020

Да, есть метод, который можно использовать для ограничения поддерживаемых ориентаций интерфейса:

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { self.restrictRotation /* could be limited or not */ }

он должен быть внутри AppDelegate, но вы можете использовать что-то вроде Notification / Observer или некоторого шаблона делегирования для передайте ограничение на AppDelegate или установите его из другого места.

...