Commit 9aec4010 by Orkhan Alikhanov

Allowing transition cancellation in TransitionController

parent 4ff9db52
......@@ -131,26 +131,30 @@ open class TransitionController: ViewController {
open func transition(to viewController: UIViewController, completion: ((Bool) -> Void)? = nil) {
prepare(viewController: viewController, in: container)
switch motionTransitionType {
case .auto:break
default:
switch viewController.motionTransitionType {
case .auto:
if case .auto = viewController.motionTransitionType {
viewController.motionTransitionType = motionTransitionType
default:break
}
}
view.isUserInteractionEnabled = false
MotionTransition.shared.transition(from: rootViewController, to: viewController, in: container) { [weak self, viewController = viewController, completion = completion] (isFinishing) in
MotionTransition.shared.transition(from: rootViewController, to: viewController, in: container) { [weak self] isFinishing in
guard let s = self else {
return
}
s.rootViewController = viewController
defer {
s.view.isUserInteractionEnabled = true
completion?(isFinishing)
}
guard isFinishing else {
s.removeViewController(viewController: viewController)
s.removeViewController(viewController: s.rootViewController)
s.prepare(viewController: s.rootViewController, in: s.container)
return
}
s.rootViewController = viewController
}
}
open override func prepare() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment