iOS 7 中的 iOS 6 滑动推送控制器动画
Posted
技术标签:
【中文标题】iOS 7 中的 iOS 6 滑动推送控制器动画【英文标题】:iOS 6 slide push controller animation in iOS 7 【发布时间】:2014-02-03 08:23:43 【问题描述】:我正在创建一个应用程序,并希望在 ios 7 中使用相同的 iOS 6 样式从右到左滑动推送控制器动画。iOS 7 更改了默认控制器推送动画。
我怎样才能得到以前的动画?
如果您发现此问题重复,请在发表任何评论之前给我答案链接。
感谢您的宝贵时间。
让我再澄清一件事。
我有一个控制器,在 iOS 7 中有一个自定义视图大小 (320x400)。我使用 UINavigationController (_homeInnerNavigationCtrl) 将添加更多控制器 init,而这个 _homeInnerNavigationCtrl.view 是自定义视图中的子视图。所以当我尝试使用这段代码时:
CATransition *transition = [CATransition animation];
transition.duration = 0.5;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[currentViewCtrl.view.layer addAnimation:transition forKey:nil];
[currentViewCtrl presentViewController:targetCtrl animated:NO completion:^
[_homeInnerNavigationCtrl pushViewController:targetViewCtrl animated:NO];
];
它让我崩溃: 由于未捕获的异常“UIViewControllerHierarchyInconsistency”而终止应用,原因:“将根视图控制器添加为视图控制器的子级:”
希望您能理解描述。谢谢。
【问题讨论】:
【参考方案1】:在呈现控制器时使用此代码:
CATransition *transition = [CATransition animation];
transition.duration = 0.5;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.view.window.layer addAnimation:transition forKey:nil];
[self presentModalViewController:viewController animated:NO];
当您解雇时,请使用以下代码:
CATransition *transition = [CATransition animation];
transition.duration = 0.5;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
[self.view.window.layer addAnimation:transition forKey:nil];
[self dismissModalViewControllerAnimated:NO];
【讨论】:
感谢您的回复,但 presentModalViewController 已弃用是 iOS 6,我正在使用 iOS 7。 @Jack_iPhone - 你可以使用 [self presentViewController: animated: completion:] - 我想这个方法应该可以工作以上是关于iOS 7 中的 iOS 6 滑动推送控制器动画的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 在 iOS 7 中推送动画不流畅
推送 UITabBarController 导致 UITabBar 在 iOS 7 中的动画期间是透明的
我们如何在 iOS 11 中实现 App Store 的 Today 功能中的新推送视图控制器动画