gpt4 book ai didi

ios - UINavigationController 的 interactivePopGestureRecognizer 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:39:15 24 4
gpt4 key购买 nike

我正在尝试实现自定义 id <UIViewControllerAnimatedTransitioning>将一个特定的 View Controller 推送到导航 Controller 的导航堆栈时的对象。

但是,我发现这样做会阻止 UINavigation Controller 使用默认的交互式转换,即使在不使用我的自定义转换的 View Controller 上也是如此

我不知道为什么会这样。

经过进一步调查,我发现从该方法返回 nil

- (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
animationControllerForOperation:(UINavigationControllerOperation)operation
fromViewController:(UIViewController *)fromVC
toViewController:(UIViewController *)toVC

也以某种方式禁用了默认的交互式过渡。

如何在某些情况下继续使用 UINavigationController 的默认交互式过渡,同时在其他情况下使用自定义过渡对象?

最佳答案

这是一个 blog post详细说明可能的解决方案。我没有测试过。似乎是一个非常骇人听闻的解决方法。正如作者所说,如果 Apple 进行更改,它可能会崩溃,但是嘿。

引用:

What I ended up doing was creating a new instance of a UIScreenEdgePanGestureRecognizer, configure it with the left edge and set the exact same target/action as our interactivePopGestureRecognizer, with other words, the instance of _UINavigationInteractiveTransition and the action handleNavigationTransition:. And finally add it to the UINavigationControllers view. There is a bit of -valueForKey: and NSSelectorFromString() in the final solution that I am not very proud of, but it works perfectly. Remember to be safe when implementing a solution like this, Apple change stuffs, as we all know.

关于ios - UINavigationController 的 interactivePopGestureRecognizer 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23944457/

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