RootViewController动画过渡,初始方向错误
所以我跟着这个线程:RootViewController切换过渡动画来将window.rootViewController从A传递到B到C.代码如下所示:
[UIView transitionWithView:self.window
duration:0.5
options: UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.window.rootViewController = newViewController;
}
completion:nil];
问题是我的应用只支持风景,但在rootViewController转换期间,新的视图控制器以纵向模式出现,而不是快速旋转到横向模式。
我确定:
另一个原因是什么?
我刚才看到了这个,因为我一直都有同样的问题。 我随机尝试了以下内容,并且完美地工作:
[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];
我知道在动画块中禁用/启用动画有点奇怪,但交叉会消除动画,并且旋转不会 - 视图控制器看起来已经旋转并准备好滚动。
只需放入另一个动画选项UIViewAnimationOptionAllowAnimatedContent
:
[UIView transitionWithView:self.window duration:0.5 options:(UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionAllowAnimatedContent) animations:^{
self.window.rootViewController = newViewController;
} completion:nil];
链接地址: http://www.djcxy.com/p/68287.html
上一篇: RootViewController animation transition, initial orientation is wrong
下一篇: pushing nil rootViewController onto target <UINavigationController