Currently the connection between a screen in XML and a ScreenController is the classname. It is already possible to register ScreenController instances with Nifty but still the matching happens based on the classname of the instance. This is especially cumbersome when anonymous inner classes are used (because if the odd java class names).
A somwhat better approach would be to allow the ScreeController to be set directly on a Screen (after it has been loaded). The Screen already keeps the ScreenController instance but currently does not allow that this instance is changed. Allowing that would allow a much easier usage of Nifty ScreenControllers.