所以我遵循了这个线程:RootViewController 切换过渡动画将 window.rootViewController 从 A 转移到 B 再到 C。代码如下所示:
[UIView transitionWithView:self.window
duration:0.5
options: UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.window.rootViewController = newViewController;
}
completion:nil];
问题是我的应用程序只支持横向,但在 rootViewController 转换期间,新的视图控制器以纵向模式显示,而不是快速旋转到横向模式。
我确定:
- 我已将 UISupportedOrientation 设置为横向(主页按钮右侧)
- 对于每个视图控制器,在 shouldAutoRotateToOrientation 方法中,我仅设置横向
其他原因可能是什么?
我刚才调查了这个问题,因为我一直遇到同样的问题。我随机尝试了以下方法,效果非常好:
[UIView
transitionWithView:window
duration:0.5
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^(void) {
BOOL oldState = [UIView areAnimationsEnabled];
[UIView setAnimationsEnabled:NO];
[(ICApp *)sharedApplication.delegate window].rootViewController = self;
[UIView setAnimationsEnabled:oldState];
}
completion:nil];
我知道在动画块内禁用/启用动画有点奇怪,但是交叉溶解动画,而旋转则没有 - 视图控制器似乎已经旋转并准备滚动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)