Navigates to a view and initialize the view with given parameters.
The view string consists of a view name optionally followed by a slash and a parameters part that is passed as-is to the view. ViewProviders are used to find and create the correct type of view.
If multiple providers return a matching view, the view with the longest name is selected. This way, e.g. hierarchies of subviews can be registered like "admin/", "admin/users", "admin/settings" and the longest match is used.
If the view being deactivated indicates it wants a confirmation for the navigation operation, the user is asked for the confirmation.
Registered {@link ViewChangeListener}s are called upon successful view change.
@param navigationState view name and parameters
@throws IllegalArgumentException if navigationState
does not map to a known view and no error view is registered