Looking at the instantiateViewControllerWithIdentifier
documentation...
Discussion You use this method to create view controller objects that you want to manipulate and present programmatically in your application. Before you can use this method to retrieve a view controller, you must explicitly tag it with an appropriate identifier string in Interface Builder.
This method creates a new instance of the specified view controller each time you call it.
I don't think the code you have in your appDelegate is returning the ViewController that is presented via the storyboard