【发布时间】:2014-11-11 05:43:38
【问题描述】:
我有一个视图控制器,我使用以下目标 c 代码呈现:
CATransition *animation=[CATransition animation];
animation.delegate=self;
animation.duration=0.3;
animation.type=kCATransitionMoveIn;
animation.subtype=kCATransitionFromRight;
[self presentViewController:reader animated:NO completion:nil];
[reader.view.layer addAnimation:animation forKey:@"animation"];
并在委托方法中使用类似的代码解除
CATransition *animation=[CATransition animation];
animation.delegate=self;
animation.duration=0.3;
animation.type=kCATransitionMoveIn;
animation.subtype=kCATransitionFromLeft;
[self dismissViewControllerAnimated:NO completion:nil];
[self.view.layer addAnimation:animation forKey:@"animation"];
但是有一个问题:与使用导航控制器不同,您会看到一个视图滑到另一个视图上;在这里,旧视图立即消失,因此新视图移动 在空白视图上。
我该如何解决这个问题?我需要这段代码在 IOS 6,7 和 8 中工作,并希望它看起来像在导航控制器内的视图之间来回切换时看到的水平动画。
编辑: 我接受的解决方案有一个 iOS 6 的错误,如果我能找到修复它的解决方案,我会编辑这篇文章。
编辑 2: 找到了。看来,由于我正在展示一个 zBar 视图控制器,因此我需要使用此代码
zbarController.wantsFullScreenLayout=NO;
在我设置了 cameraOverlayView 之后。
【问题讨论】:
标签: ios objective-c iphone ipad viewcontroller