diff --git a/Tusker/Screens/Large Image/Transitions/LargeImageInteractionController.swift b/Tusker/Screens/Large Image/Transitions/LargeImageInteractionController.swift index 4f8618b0..562846a8 100644 --- a/Tusker/Screens/Large Image/Transitions/LargeImageInteractionController.swift +++ b/Tusker/Screens/Large Image/Transitions/LargeImageInteractionController.swift @@ -25,7 +25,14 @@ class LargeImageInteractionController: UIPercentDrivenInteractiveTransition { } @objc func handleGesture(_ recognizer: UIPanGestureRecognizer) { - let translation = recognizer.translation(in: recognizer.view!.superview!) + guard let recognizerSuperview = recognizer.view?.superview else { + // Assume the gesture has ended b/c we don't have a view/superview anymore. + inProgress = false + direction = nil + cancel() + return + } + let translation = recognizer.translation(in: recognizerSuperview) var progress = translation.y / 200 if let direction = direction { progress *= direction @@ -63,7 +70,7 @@ class LargeImageInteractionController: UIPercentDrivenInteractiveTransition { override func cancel() { super.cancel() - viewController.isInteractivelyAnimatingDismissal = false + viewController?.isInteractivelyAnimatingDismissal = false } }