From af5a0b7bbdd70a420df8e902cfb9699f27d2c375 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 28 Oct 2023 13:58:39 -0500 Subject: [PATCH] Fix crash with large image dismiss gesture --- .../Transitions/LargeImageInteractionController.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 } }