Essentionally I have created a enum for view priorites, screens = 1, pop up screens = 0. So each time the user selects a new screen the old screen is removed and the new one is replaced with Core::Root.Add(screen, 1);, Whenever a pop up needs to be shown, its added at Core::Root.Add(popup, 0);
This should ensure that no matter what screen the user is on, whenever a pop up needs to be shown, it appears on top of the screens - however it doesnt always work, sometimes the view seems to be added behind the screen, which is obvoiusly not ideal - what am I doing wrong.