I would recommend Storyboard for this. Back in the day, when I first started using Corona I didn’t understand scene managers and what they do (Director then eventually Storyboard) and my first app’s code is a disaster because I had to try and build all of these different “scenes”. Once I made myself learn Director (then eventually Storyboard after it came out), it was a huge enlightenment.
When using a scene manager (and I’m going to be using Storyboard only going forward for various reasons), you have a separate .lua file for each scene. In my apps that includes:
main.lua --\> splash.lua --\> menu.lua --\> help.lua --\> gamecredits.lua --\> gamesettings.lua --\> levelselect.lua --\> game.lua (could be level1.lua , level2.lua, etc. --\> levelcomplete.lua --\> gameover.lua
Basically menu calls levelselect which calls the appropriate level for the game. Just a note, main.lua is not a scene, it basically calls your first scene. splash.lua would be optional if you want an intro or not. You could go straight to your menu scene if you want.
levelcomplete.lua would likely go back to your game.lua or the next levelX.lua if you’re using multiple files for your levels. If the player looses, then the game level would go to gameover.lua and after gameover.lua you would go back to menu.lua.
It can get a bit tricky if you want to have a pause in your game where you save the existing level’s state, and then get back to the menu in which case you would need a resume button that would skip level select and go back to your game level.
I would recommend building a simple app using multiple scenes before you get into more complex things, like maybe a menu, a level of game and a credit scene to get an idea of how they work.
There are multiple tutorials on using Storyboard available. You can start here:
http://www.coronalabs.com/resources/tutorials/user-interface-scenes-and-widgets/