Контроллеры входа в Google и Facebook представлены модально в Xcode 11 iOS 13 - PullRequest
0 голосов
/ 30 октября 2019

Я обновил модули до последней версии и

Переопределил метод

override func present(_ viewControllerToPresent: UIViewController,
                      animated flag: Bool,
                      completion: (() -> Void)? = nil) {
  viewControllerToPresent.modalPresentationStyle = .fullScreen
  super.present(viewControllerToPresent, animated: flag, completion: completion)
}

Все остальные контроллеры отображаются в полноэкранном режиме, но вход в Google и Facebook все еще отображается в виде страницы.

Как мне представить их в полноэкранном режиме, как раньше?

Facebook Login Screenshot Google Login Screenshot

Заранее спасибо!

Обновлено

Я нашел обходной путь. Если я установлю свой LoginViewController как rootViewController окна, тогда они будут отображаться в полноэкранном режиме, но если я представлю их из UINavigationController, они будут представлены модально.

    func showSignUpScreen() {
      let controller:SignUpViewController =   UIStoryboard.instantiateViewController(storyboardName: .loginSignup, viewControllerIdetifier: "SignUpViewController") 
      self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false

      //Presents full Screen
      UIApplication.shared.delegate?.window??.rootViewController = controller

      //Presents Modally
      self.navigationController?.pushViewController(controller, animated: false)
}

Но я не всегда могу представить, когда панель вкладок становитсяскрыто, когда представлено на окне. Мне нужны панели вкладок для отображения других экранов, которые не требуют входа в систему.

Tab Bar Presented on window

1 Ответ

1 голос
/ 05 ноября 2019

следующее расширение для отображения вида сафари в полноэкранном режиме

extension  SFSafariViewController {
    override open var modalPresentationStyle: UIModalPresentationStyle {
        get { return .fullScreen}
        set { super.modalPresentationStyle = newValue }
    }
}
...