Поместите эту функцию в свой класс AppDelegate.Вы можете вызывать эту функцию из любого места в своих контроллерах вида.
class AppDelegate: UIResponder, UIApplicationDelegate {
// ...
public func present(viewController: UIViewController) {
guard let window = window else { return }
UIView.transition(with: window, duration: 0.5, options: .transitionFlipFromLeft, animations: {
window.rootViewController = viewController
}, completion: nil)
}
}
В контроллере вида, из которого пользователь хочет выйти из системы, вызовите функцию выше следующим образом:
public static func setRootViewController(withId id: String, storyBoardName: String) {
let mainStoryboard: UIStoryboard = UIStoryboard(name: storyBoardName, bundle: nil)
let newRootVC = mainStoryboard.instantiateViewController(withIdentifier: id)
guard let delegate = UIApplication.shared.delegate as? AppDelegate else { return }
delegate.present(viewController: newRootVC)
}