Efficient loading of a new sub menu

I was wondering if Application.LoadLevel(“blah”); is the most efficient way of loading a submenu. I would have thought keeping submenus within the same scene made more sense, but it seems that is not the way it’s meant to be. Can someone give me tips/tricks on how you load sub-menus within your main menus?

The description of the problem is something like a main menu, which has an “option” button, which then loads a new menu with options (and obviously a back button).

For menus there is no reason to use App level load, thats mainly for scene/level changes as im sure you figured out. For a main menu, i use a switch case and switch menuName:String. This keeps the code reasonably neat.

var menuName:String;

function OnGUI()
{
    switch(menuName)
    {
        case "MainScreen":
            //option button {menuName="Options";}
            //multiplayer button
            //app store button
        break;
        case "Options":
            //button
            //button
            //slider
            //back button
        break;
    }
}

you can have a hierarchy of these switch cases, like a top level and have sub menus inside of that. For back buttons, you can have a secondary string that tracks the last menu. If you go through multiple sub levels, you can alternatively have an array of visited menus so you can go back in the correct order.