2014-10-08 2 views
1

Я получаю следующее предупреждение, когда представляю контроллер модального представления на контроллере навигации в iOS 8 при запуске. Он отлично работает на iOS 7.Неуравновешенные вызовы в iOS 8

Unbalanced calls to begin/end appearance transitions for UINavigationController. 

Вот что я делаю.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    ... 
    [self.window makeKeyAndVisible]; 
    ... 
    [self.navigationController presentViewController:self.modalViewController animated:NO completion:nil]; 
} 

В iOS 8 Я вижу контроллер навигации в течение секунды, прежде чем появится модальное представление. В iOS 7 я вижу контроллер модального просмотра сразу без предупреждения.

Как получить такое же поведение в iOS 8?

ответ

1

Чтобы избавиться от предупреждения, вам необходимо переместить код в свои первые контроллеры представлений viewDidAppear. Чтобы сделать его более приятным, вы можете подумать о том, чтобы сделать некоторые трюки. У меня была та же проблема, и я решил ее, показав полноэкранный образ вашего контроллера модального представления на вашем первом контроллере представления и спрячу это изображение после того, как будет представлен контроллер модального представления, например. используя метод performSelector:withObject:afterDelay

+1

Не могу поверить, что нет другого решения, wtf Apple. –

+0

Для других, которые имеют дело с этой проблемой, я «исправил» ее, используя этот UIView * snapshot = [navigationController.view snapshotViewAfterScreenUpdates: YES]; –

Смежные вопросы