iOS 8: переход с UINavigationController на UISplitViewController, плохая анимация
Я пытаюсь оживить переход от UINavigationController
к UISplitViewController
, но контроллер разделенного представления не рисует правильно, пока анимация не закончена. Панели навигации прозрачны, а их заголовки расположены неправильно. Когда анимация заканчивается, они прыгают в "правильное" место. я использую
-transitionFromViewController:toViewController:duration:options:animations:completion
UISplitViewController
имеет UINavigationController
s как для своего хозяина, так и для деталей. По мере перехода внутрь панель навигации становится темно-серой, а заголовок смещен слишком высоко. Как только анимация заканчивается, панель быстро меняет цвет на светло-серый, и заголовок переходит на правильное место. Вот пример кода:
// Master and its nav
UIViewController *master = [[UIViewController alloc] init];
master.title = @"master";
UINavigationController *masterNav = [[UINavigationController alloc] initWithRootViewController:master];
masterNav.toolbarHidden = NO;
// Detail and its nav
UIViewController *detail = [[UIViewController alloc] init];
detail.title = @"detail";
UINavigationController *detailNav = [[UINavigationController alloc] initWithRootViewController:detail];
// Split
UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = @[ masterNav, detailNav ];
// Now transition
UIViewController *from = [self.childViewControllers lastObject];
[self addChildViewController:splitViewController];
NSTimeInterval duration = 1.0;
UIViewAnimationOptions options = UIViewAnimationOptionTransitionCrossDissolve;
[self transitionFromViewController:from
toViewController:splitViewController
duration:duration
options:options
animations:^{}
completion:^(BOOL finished) {
[splitViewController didMoveToParentViewController:self];
}];