I tend to keep it to one game mode for my projects (although I’m not sure that’s the best way to go about things). Then use the HUD class that you can set inside your gamemode and have this pop-up on game start as your main menu. Then hide the main menu when you start the game?
So, each level/map has it’s own set game mode that you can specify in the editor. What you do is have a GameMode for the main menu, and one for the game. Then, have a level/map for the Main Menu and one for the actual level. When you want to swap, run GEngine->LoadMap (or various others depending on if you are going single player or multiplayer).
When you get into the level, the gamemode will swap by itself.