I'm fairly new iOS development. I have multiple `viewController`s for my app, for example -

* A login screen
* A main / my profile screen
* A leader board / standings screen
* etc..

Each of these screens has its own `viewController`. 

What's the best way to transition between any two arbitrary `viewController`s with an animation?

My current approach is -

1. Keep a reference to each `viewController` in `AppDelegate.m`
2. Keep changing the window's root controller as needed

This is both cumbersome and seems pretty inefficient, plus I'm not quite sure how to incorprate animated transitions here. 

I see some examples with `UINavigationController`, but it seems like that operates as a "stack" of views that you can go into and then back out of. I'm not looking to keep a history here, just switch from any view to another.

Any good ways to accomplish this?

Thanks!