Контекст: я пытаюсь выполнить пользовательскую анимацию из обычного 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"];
Когда устройство находится в портретном режиме, все прошло отлично. Однако, когда устройство находится в ландшафтном режиме, анимация перехода выполняется так, как будто устройство все еще находится в портретном режиме. Например: вместо того, чтобы заходить слева, он заходит снизу. Ориентация обоих взглядов полностью верна. Только переход странный.