gpt4 book ai didi

ios - 自定义推送动画打破默认交互式弹出动画

转载 作者:行者123 更新时间:2023-12-01 16:24:03 24 4
gpt4 key购买 nike

在我的导航 Controller 委托(delegate)中,我有以下代码:

- (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
animationControllerForOperation:(UINavigationControllerOperation)operation
fromViewController:(UIViewController *)fromVC
toViewController:(UIViewController *)toVC {
if ([toVC isKindOfClass:[ParentViewController class]]) {
if (operation == UINavigationControllerOperationPush) {
return [(ParentViewController *)toVC pushAnimator];
}
}
return nil;
}

Push animator 实现如下(一些 View Controller 覆盖它以实现自定义转换):
- (id<UIViewControllerAnimatedTransitioning>)pushAnimator {
return nil;
}

但是在这个默认的交互式弹出动画被破坏之后(但根据文档,如果这个方法返回 nil 默认动画将被使用),即使我没有为选定的 View Controller 使用自定义转换。

如何为某些屏幕带来交互式弹出手势,但使用自定义推送动画?

最佳答案

只需执行UIGestureRecognizerDelegate在 View Controller (或任何实际的东西)上,并做

navigationController?.interactivePopGestureRecognizer?.delegate = self

似乎您甚至不必实现任何东西,但是您可能想尝试类似的东西

func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return navigationController?.viewControllers.count ?? 0 > 1
}

关于ios - 自定义推送动画打破默认交互式弹出动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41377270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com