К сожалению, насколько я могу судить, у Storyboards нет способа подключиться к делегату приложения. Следовательно, вы не можете напрямую получить дескриптор контроллера представления в методах жизненного цикла делегата приложения, чтобы выполнить дополнительную работу.
Однако вы ДЕЙСТВИТЕЛЬНО знаете, что свойство rootViewController
окна делегата приложения будет начальным контроллером представления, указанным вами в раскадровке. Так что вы всегда можете сделать что-то вроде этого:
XXRootViewController *rootViewController = (XXRootViewController *)self.window.rootViewController;
[rootViewController doAdditionalWork];
Кроме того, причина, по которой вызов -instantiateViewControllerWithIdentifier:
на вашем раскадровке не работает, заключается в том, что он фактически создает экземпляр нового контроллера представления. Однако иерархия контроллера представления, которую вы настроили в файле раскадровки, - это то, что фактически не архивируется при запуске вашего приложения. Таким образом, вы эффективно создаете экземпляр этого контроллера представления, вносите в него некоторые изменения, а затем он освобождается.