State Restoration издает предупреждение - вызывает необъяснимые визуальные аберрации

Пока что в Интернете нет сведений об этом предупреждении о восстановлении состояния, которое происходит со мной:

-[UIViewController(StateRestoration) decodeRestorableStateWithCoder:]: Warning - State Restoration for UIViewController has presented view controller, but view controller is either not in a window, or the window is hidden. Deferring presentation which might cause flashing when presentation is made after a turn of the run loop:
self: <SomeTabBarController: 0x16e91220>, presented view controller: <UINavigationController: 0x16dbe260>

TabBarController имеет представление, которое подталкивает ViewController (vc1) к контроллеру навигации. Затем VC1 модально подталкивает к себе NavigationController, который имеет собственную серию контроллеров представления, начиная с vc2.

Когда состояние восстанавливается, оно возвращается к vc1 (из снимка vc2), прежде чем в конечном итоге снова показать vc2 вживую.

Если у кого-то есть идеи о том, где я могу хотя бы начать изучить это, это было бы большим подспорьем.


person voidref    schedule 13.05.2014    source источник
comment
Я также вижу мигание при восстановлении контроллера корневого представления, который представляет другой. Я не получаю предупреждения, которое вы получаете, хотя, похоже, оно описывает мою проблему. Вы уже нашли какое-нибудь решение?   -  person Anton    schedule 21.05.2014
comment
Предупреждение появляется только в том случае, если вы устанавливаете .mobileprofile, который добавляет к отладке восстановления состояния.   -  person voidref    schedule 23.05.2014


Ответы (1)


Мне удалось решить эту проблему, сделав ключ окна видимым в application:willFinishLaunchingWithOptions:.

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self.window makeKeyAndVisible];
    return YES;
}
person Anton    schedule 21.05.2014
comment
Я попробую, что заставило вас попробовать это? - person voidref; 23.05.2014
comment
Сообщение об ошибке, которое вы получили, предполагало, что окно не было полностью представлено или что-то в этом роде, поэтому я хотел его принудительно. Попробовав это, я также увидел, что Apple делает то же самое в этом примере проекта: разработчик .apple.com / library / ios / samplecode /. - person Anton; 23.05.2014
comment
Отлично, спасибо за это. Я смотрел этот проект и пропустил его. - person voidref; 24.05.2014