diff --git a/python_payload/st3m/ui/view.py b/python_payload/st3m/ui/view.py
index fd2a26e956654c6bf49d97e330c6a043a579bb1c..d27b4b8a65380283094944387c4f44148933bc5d 100644
--- a/python_payload/st3m/ui/view.py
+++ b/python_payload/st3m/ui/view.py
@@ -27,6 +27,18 @@ class View(Responder):
         """
         pass
 
+    def on_enter_done(self) -> None:
+        """
+        Called after a transition into the view has finished.
+        """
+        pass
+
+    def on_exit_done(self) -> None:
+        """
+        Called after a transition out of the view has finished.
+        """
+        pass
+
     def show_icons(self) -> bool:
         """
         View should return True if it accepts having system icons drawn on top
@@ -188,7 +200,11 @@ class ViewManager(Responder):
                 self._transition = 0
                 self._transitioning = False
 
-                self._outgoing = None
+                if self._incoming is not None:
+                    self._incoming.on_enter_done()
+                if self._outgoing is not None:
+                    self._outgoing.on_exit_done()
+                    self._outgoing = None
 
         if self._outgoing is not None:
             self._outgoing.think(ins, delta_ms)