I would suggest to start with a navigation controller as root view controller, which has set the login screen as its only view controller for the case that your user isn't yet logged in. From that screen you are able to simply push your signup and forgotten password screens as well (within the base navigation controller, you don't have to set up new navigation controllers for each new screen, except you want to display it modaly (presenting instead of pushing it).
After the user logs in you simply switch the root view controller in AppDelegate to your tabbar controller which becomes the new root.
For each of the tabs shown within the tabbar you define a navigation controller which again contains the first screen you want to display at that specific tab item. So if you have 4 tabs, you set up 4 navigation controllers and pass them in UITabBarController.ViewControllers.
(I have currently chosen the exact same setup, so I am pretty sure that works :-)).