i use something like this in one of my addonds. maybe it helps:
Lua Code:
local lastSceneName = "empty"
local marketAnnouncement = "marketAnnouncement"
local gameMenuInGame = "gameMenuInGame"
SCENE_MANAGER:RegisterCallback("SceneStateChanged", function(scene, oldState, newState)
local sceneName = scene:GetName()
if sceneName == marketAnnouncement and lastSceneName ~= gameMenuInGame then
if newState == SCENE_SHOWING or newState == SCENE_SHOWN then
SCENE_MANAGER:Hide(sceneName)
end
end
lastSceneName = sceneName
end)