我在我的iOS应用程序中使用自定义动画进行导航.
我有一个UINavigationController的子类,其中重写了以下方法:
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { CATransition* transition = [CATransition animation]; transition.duration = 0.4; transition.timingFunction = [camediatimingFunction functionWithName:kcamediatimingFunctionDefault]; transition.type = kCATransitionPush;//kCATransitionFade; //kCATransitionMoveIn; //,kCATransitionPush,kCATransitionReveal,kCATransitionFade transition.subtype = kCATransitionFromLeft; //kCATransitionFromLeft,kCATransitionFromright,kCATransitionFromTop,kCATransitionFromBottom [self.view.layer addAnimation:transition forKey:@"Push"]; [super pushViewController:viewController animated:NO]; } - (UIViewController *)popViewControllerAnimated:(BOOL)animated { CATransition* transition = [CATransition animation]; transition.duration = 0.4; transition.timingFunction = [camediatimingFunction functionWithName:kcamediatimingFunctionDefault]; transition.type = kCATransitionPush;//kCATransitionFade; //kCATransitionMoveIn; //,kCATransitionFade transition.subtype = kCATransitionFromright; //kCATransitionFromLeft,kCATransitionFromBottom [self.view.layer addAnimation:transition forKey:@"Pop"]; UIViewController *poppedVC = [super popViewControllerAnimated:NO]; return poppedVC; }
我不记得链接,但我从这里的一个问题复制了这个代码,一点点修改对我有用.
现在,当我将代码移植到iOS 7 SDK时,导航时会显示黑色背景.
我在这里发布了一个视频:Black background while navigation in iOS app,以便说清楚.
注意:我的应用程序中的要求是当推/弹时动画与默认的左右和左右相反.当我针对iOS 5并且没有显示黑色背景/屏幕时,此代码工作正常.
解决方法
原文地址:https://www.jb51.cc/iOS/327798.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。