public void Show(ScreenId screenId)
        {
            if (currentScreen != null)
            {
                currentScreen.Hide();
            }

            if (currentScreenId != screenId)
            {
                currentScreenId = screenId;
                currentScreen   = FindScreen(currentScreenId);;
                if (currentScreen == null)
                {
                    throw new NotImplementedException();
                }
            }

            currentScreen.Show();
        }
        private BaseScreen FindScreen(ScreenId screenId)
        {
            if (screens[(int)currentScreenId] != null)
            {
                return(screens[(int)currentScreenId]);
            }

            BaseScreen screen = null;

            switch (screenId)
            {
            case ScreenId.Splash:
                break;

            case ScreenId.Game:
                screen = new GameScreen(Context.Instance.Drawer);
                screen.Init();
                screens[(int)screenId] = screen;
                break;
            }
            return(screen);
        }