Fix dismissing gallery presented by modally-presented VC removing the

gallery's presenting VC from the view hierarchy

Closes #132
This commit is contained in:
Shadowfacts 2021-09-21 23:30:38 -04:00
parent e61823b78f
commit 7c5076d01a
Signed by: shadowfacts
GPG Key ID: 94A5AB95422746E5
1 changed files with 9 additions and 0 deletions

View File

@ -68,6 +68,12 @@ class LargeImageShrinkAnimationController: NSObject, UIViewControllerAnimatedTra
blackView.backgroundColor = .black blackView.backgroundColor = .black
blackView.alpha = 1 blackView.alpha = 1
// Save the old superview of toVC so we can move it back after the animation.
// It would be better to just not move toVC and instead remove from fromVC from the
// containerView so that toVC is visible behind it, but that doens't work for some reason
// (the entire screen just goes black, not even the contents of the containerView appear).
let oldSuperview = toVC.view.superview
containerView.addSubview(toVC.view) containerView.addSubview(toVC.view)
containerView.addSubview(blackView) containerView.addSubview(blackView)
containerView.addSubview(imageView) containerView.addSubview(imageView)
@ -88,6 +94,9 @@ class LargeImageShrinkAnimationController: NSObject, UIViewControllerAnimatedTra
sourceView.alpha = 1 sourceView.alpha = 1
transitionContext.completeTransition(!transitionContext.transitionWasCancelled) transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
// move the toVC back to the view that it was in before
oldSuperview?.addSubview(toVC.view)
}) })
} }