Hello Phil,
UpdateViewState() is called only when the state of the corresponding component has changed or if it has been requested explicitly by using the method InvalidateViewState(). Presenting or hidding a component does not affect the state either of this or other components. Accordingly, none of them will perform UpdateViewState(). I suppose, UpdateViewState() is called because the affected component has received (or lost) the state Selected, Focused or Modal. See also: Common component states.
This could explain (as far as I understood your explication) why it works with the main screen. The main screen is probably focused. Presenting the Popup revokes the focus state. Closing the popup restores the state again. Every state alternation causes the UpdateViewState being called.
What can you do? From your explication it is not simple to deduce the structure of the application. Do you make the popup modal? If yes, just ensure that the actually selected screen is focused before the popup is shown.
Alternative approach could be to receive a signal from the popup when the user closes it and then trigger the necessary update.
Best regards
Paul Banach