I can't get the key functionality to work even if I do it exactly like you have in that controller example (except that I don't use any animations but just change menu states with SetActiveChildren in code). I have main menu and game over menu. For the first time after starting the game key controls works just fine but once I come back to main menu from game over menu, keys just stop working. I change menu statesin code like this:
NGUITools.SetActiveChildren(playUI,false);
NGUITools.SetActiveChildren(gameOverUI,true);
and I have set my Play and Back to Menu buttons StartsSelected to true. I have also tried UICamera.selectedObject = startButton; (Play button) and if I Debug.log that, it is selected but the button doesn't really get selected in the game... What am I doing wrong here?