Skip to content

Commit

Permalink
Fixed interactive dismissal transition not working
Browse files Browse the repository at this point in the history
  • Loading branch information
Chandlerdea committed May 17, 2019
1 parent c8ed5ad commit 06c1489
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 9 deletions.
4 changes: 0 additions & 4 deletions ViewControllerPresentation.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@
36BB65451FD9E0B800D121A1 /* OverlayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36BB65441FD9E0B800D121A1 /* OverlayViewController.swift */; };
36F60E4521DD6A9100F15BB7 /* ViewControllerModalTransitionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F60E4121DD6A9100F15BB7 /* ViewControllerModalTransitionController.swift */; };
36F60E4821DD6A9100F15BB7 /* ViewControllerModalAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F60E4221DD6A9100F15BB7 /* ViewControllerModalAnimator.swift */; };
36F60E4A21DD6A9100F15BB7 /* ViewControllerModalInteractiveDismissalController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F60E4321DD6A9100F15BB7 /* ViewControllerModalInteractiveDismissalController.swift */; };
36F60E4B21DD6A9100F15BB7 /* ViewControllerModalInteractiveDismissalController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F60E4321DD6A9100F15BB7 /* ViewControllerModalInteractiveDismissalController.swift */; };
36F60E4C21DD6A9100F15BB7 /* ViewControllerModalInteractiveDismissalController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F60E4321DD6A9100F15BB7 /* ViewControllerModalInteractiveDismissalController.swift */; };
36FA97AD204B7FC300963D0E /* ViewControllerPeekTransitionAnimationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FA97AC204B7FC300963D0E /* ViewControllerPeekTransitionAnimationController.swift */; };
36FA97B2204B81EE00963D0E /* ViewControllerPresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FA97B1204B81EE00963D0E /* ViewControllerPresentable.swift */; };
36FA97B4204B85C400963D0E /* ViewControllerPeekAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FA97B3204B85C400963D0E /* ViewControllerPeekAnimator.swift */; };
Expand Down Expand Up @@ -458,7 +456,6 @@
files = (
36BB65291FD9E04C00D121A1 /* RootViewController.swift in Sources */,
36BB65271FD9E04C00D121A1 /* AppDelegate.swift in Sources */,
36F60E4A21DD6A9100F15BB7 /* ViewControllerModalInteractiveDismissalController.swift in Sources */,
36BB65451FD9E0B800D121A1 /* OverlayViewController.swift in Sources */,
36FA97B6204B8A4100963D0E /* PeekViewController.swift in Sources */,
360F91F422850651005FC51F /* CirclePresentedViewController.swift in Sources */,
Expand All @@ -473,7 +470,6 @@
368368E21FDA3311007EF38E /* ViewControllerAnimatorTests.swift in Sources */,
368368E41FDA4ADB007EF38E /* ViewControllerOverlayTests.swift in Sources */,
3646E4A11FDA135C0013AD55 /* ViewControllerOverlayPresentationTests.swift in Sources */,
36F60E4C21DD6A9100F15BB7 /* ViewControllerModalInteractiveDismissalController.swift in Sources */,
3646E4A51FDA15040013AD55 /* ViewControllerDefaultPresentationTests.swift in Sources */,
3646E4A31FDA141F0013AD55 /* AsyncTesable.swift in Sources */,
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ public final class ViewControllerModalInteractiveDismissalController: UIPercentD
public static let percentThreshold: CGFloat = 0.3 // The user needs to swipe down 30% to trigger a dismissal

public private(set) var interactionInProgress = false

public private(set) var shouldCompleteTransition = false

private weak var viewController: (UIViewController & ViewControllerModalInteractiveDismissable)!

public init(viewController: UIViewController & ViewControllerModalInteractiveDismissable) {
Expand Down Expand Up @@ -52,8 +53,8 @@ public final class ViewControllerModalInteractiveDismissalController: UIPercentD

switch recognizer.state {
case .began:
viewController.swipeDidBegin()
self.interactionInProgress = true
viewController.swipeDidBegin()
viewController.dismiss(animated: true, completion: .none)
case .changed:
self.shouldCompleteTransition = progress > percentThreshold
Expand All @@ -62,8 +63,8 @@ public final class ViewControllerModalInteractiveDismissalController: UIPercentD
self.interactionInProgress = false
self.cancel()
case .ended:
viewController.swipeDidEnd()
self.interactionInProgress = false
viewController.swipeDidEnd()
self.shouldCompleteTransition
? self.finish()
: self.cancel()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public final class ViewControllerPeekTransitionAnimationController: ViewControll
}

public func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
if let interactiveDismissal: ViewControllerModalInteractiveDismissable = dismissed as? ViewControllerModalInteractiveDismissable {
if case let interactiveDismissal as ViewControllerModalInteractiveDismissable = dismissed {
return ViewControllerPeekAnimator(
isPresenting: false,
interactiveDismissalController: interactiveDismissal.interactiveTransitioning
Expand All @@ -38,7 +38,7 @@ public final class ViewControllerPeekTransitionAnimationController: ViewControll
}

public func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
if let peekAnimator: ViewControllerPeekAnimator = animator as? ViewControllerPeekAnimator,
if case let peekAnimator as ViewControllerPeekAnimator = animator,
let interactiveDismissale: ViewControllerModalInteractiveDismissalController = peekAnimator.interactiveDismissalController,
interactiveDismissale.interactionInProgress {
return interactiveDismissale
Expand Down

0 comments on commit 06c1489

Please sign in to comment.