Would it not make sense to specify the controller in the "switch screen" method so that the controller is already set when the first values are being read as the screen is created. (i.e. Call.X()). That controller doesn't even need adding to the list of controllers in Nifty.java.

This would solve a separate problem I'm having at the moment so it would be nice to either get this or the ability to remove controllers.