This:
RMViewController *controller = (RMViewController *)[storyboard instantiateInitialViewController];
creates an entirely new view controller which is not associated with the app UI at all. Data based operations it performs will likely function quite well but it has no way to change the app UI.
Probably what you should be doing is finding the existing RMViewController
instance in the existing UI setup, possibly via the app window
and its link to the root view controller.
Failing that, though that probably is the correct solution, at least present the RMViewController
instance so that its view is loaded. Again, the presentation would be from the root view controller.
From your comment:
RMViewController *controller = (RMViewController *)self.window.rootViewController;