         transitionController.setStartingView(startingView)
         transitionController.setEndingView(referenceViewForCurrentPhoto)
 
+        let overlayActionViewWasHidden = overlayActionView.hidden
+        self.overlayActionViewWasHiddenBeforeTransition = overlayActionViewWasHidden
+        setOverlayActionViewHidden(true, animated: animated)
+
         // TODO
-        super.dismissViewControllerAnimated(animated) {
+        super.dismissViewControllerAnimated(animated) { [weak self] in
+
+            let isStillOnscreen = (self?.view.window != nil)
+
+            if (isStillOnscreen && !overlayActionViewWasHidden) {
+                self?.setOverlayActionViewHidden(false, animated: true)
+            }
+
             completion?()
         }
     }

            let height = overlayActionView.heightAnchor.constraintEqualToConstant(60)

            NSLayoutConstraint.activateConstraints([leading, trailing, bottom, height])
        }

        do {

        fatalError("init(coder:) has not been implemented")
    }

    private func setOverlayActionViewHidden(hidden: Bool, animated: Bool) {

        guard overlayActionView.hidden != hidden else {
            return
        }

        if animated {
            overlayActionView.hidden = false
            overlayActionView.alpha = hidden ? 1 : 0

            UIView.animateWithDuration(1, delay: 0, options: [.CurveEaseIn, .CurveEaseOut, .AllowAnimatedContent, .AllowUserInteraction], animations: { [weak self] in
                self?.overlayActionView.alpha = hidden ? 0 : 1

            }, completion: { [weak self] finished in
                self?.overlayActionView.hidden = hidden
            })

        } else {
            overlayActionView.hidden = hidden
        }
    }

    private func newPhotoViewControllerForPhoto(photo: Photo) -> PhotoViewController {

        let photoViewController = PhotoViewController(photo: photo)
