1

I'm developing a simple iOS app to learn Swift and iOS programming. I was wondering what would be the "best" way to present, on app launch, a different View Controller than the first one in the Navigation Controller stack.

Consider this storyboard diagram: Storyboard The Tab Bar Controller is the initial View controller and "View Controller 1" is shown at app launch inside the navigation controller. Since "View Controller 1" will be almost never used, I'd like to show "View Controller 2" instead, with the "back" button pointing to "View Controller 1". To save time and memory, I'd prefer non to load "View Controller 1" at all, since I already know what data has to be shown in the second view controller.

Both the view controllers are actually Table View Controllers and the selection of one of the cells in the first VC triggers a segue to the second. However the user would usually only need to see the second VC as if the first cell of TVC 1 was selected.

Lorenzo Rossi
  • 613
  • 1
  • 8
  • 18

1 Answers1

2

Because you want to be able to "go back" to the first VC, it needs to be put below the second one. My suggestion is to programatically set up the first VC as the root view controller in appDelegate didFinishLaunchingWithOptions and immediately push/present VC2. In this way the first VC won't be shown and therefore costly views loading/laying out subviews can be omitted.

Adams
  • 38
  • 6