Контекст: я пытаюсь выполнить пользовательскую анимацию от обычного UIViewController.view
до UISplitViewController.view
. Анимация должна отображаться слева направо.
Я установил self.window.rootViewController = viewController
, где viewController
является нормальным UIViewController
.
После того, как пользователь проведет пальцем, вызывается следующее:
UIView *theWindow = [viewController.view superview];
[viewController.view removeFromSuperview];
[theWindow addSubview:self.splitViewController.view];
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[theWindow layer] addAnimation:animation forKey:@"SwitchToView1"];
Когда устройство находится в портретном режиме, все прошло отлично. Однако, когда устройство находится в ландшафтном режиме, анимация перехода выполняется так, как если бы устройство все еще находилось в портретном режиме. Например: вместо того, чтобы входить слева, он входит снизу. Ориентация обоих взглядов абсолютно правильная. Только переход странный.