Ok, with the fact that I want to have a main menu screen that I then press buttons to go to other screens has directed me to use a NavigationController.
If my MenuViewController is my main window and I want to go to my LoginViewController first, I simply push the view controller after setting a flag that this is the first time through and so I need to display the LoginViewController.
If I want to do this when the application first launches, I catch the ViewWillAppear and push the LoginViewController correct? (this obviously works). When Login is complete, I inform my MainViewController (through a delegate) that the login is complete and then pop the LoginView Controller. MainViewController gets control and this time when it gets the viewWillAppear it sees that the user is logged in and does not go into the LoginViewController again.
HERE IS THE QUESTION
What if LoginViewController needs to display a RegisterViewController. Do I push another ViewController and once Registered, tell the LoginViewController which when the RegisterViewController pop's and control is passed back to the LoginViewController it sees that the user is "registered and logged in" and so it tells the MainViewController though the delegate that the user is logged in and pops back the MainViewController who's viewWillAppear bypasses the LoginViewController pushing because the user is logged in?
Is there an obvious simpler way to do this? (The animation of the RegisterViewController back to the LoginViewController back to the MainViewController is really bad looking - And don't even get me started on animation because that just really messes everything up)
Suggestions?