Если вы хотите просто указатель на раскадровку, то вы можете сделать это:
UIStoryboard *sb = [[[self window] rootViewController] storyboard];
где rootViewController
фактически первоначальный вид контроллера раскадровку. Если вы ожидаете, что этот контроллер будет текущим контроллером (как вы говорите), тогда вам будет хорошо, но если вы хотите действительно обновить свой пользовательский интерфейс, то, я думаю, вы могли бы опубликовать пользовательское уведомление от делегата (внутри applicationDidBecomeActive
), и зарегистрируйте каждый контроллер, который может заинтересовать его, чтобы он мог обновить свой пользовательский интерфейс (или просто добавить self
в качестве наблюдателя для UIApplicationDidBecomeActiveNotification
, чтобы поймать то же, что и ваш делегат).
PS. Если rootViewController
это UINavigationController
вы можете получить в настоящее время показывая контроллер, как это:
id currentController = [[[self window] rootViewController] visibleViewController];
делает этот пост помочь? http://stackoverflow.com/questions/9548911/presenting-a-specific-view-controller-from-appdelegate - например, используйте 'applicationWillEnterForeground'. – petert
'AppDelegate' имеет свойство' window', но нет раскадровки. Так что мне делать? – Carina