gpt4 book ai didi

ios - 设置 navigationController.interactivePopGestureRecognizer.delegate = self 时,UIControllerView 向后滑动停止工作;

转载 作者:行者123 更新时间:2023-11-28 21:23:19 27 4
gpt4 key购买 nike

正如标题所说。我有一个 Controller ,我在其中设置 interactivePopGestureRecognizer.delegate 来处理何时允许向后滑动手势以及何时不允许的逻辑。有效。但现在我注意到,一旦我设置了代表,向后滑动就会停止工作。它确实导致了那一行代码。但是为什么?

是的,我用来处理向后滑动逻辑的 Controller 具有所需的一切(UIGestureRecognizerDelegate 协议(protocol)gestureRecognizerShouldBegin delegate 方法返回 YES),但正如我所说,我在另一个 Controller 中发现,仅通过调用以下代码的一行,后滑不再起作用。 (是的,另一个 Controller 符合 UIGestureRecognizerDelegate 协议(protocol))

self.navigationController.interactivePopGestureRecognizer.delegate = self;

如果我还添加它也无济于事:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return YES;
}

self.navigationController.interactivePopGestureRecognizer.enabled = YES;

请问是什么原因造成的?如果我不调用那一行代码,向后滑动就可以了!它甚至在我处理逻辑的另一个 Controller 中也能正常工作。

编辑:我正在从 viewDidLoad 设置委托(delegate)。我也从 viewDidAppear 尝试过,但没有。

最佳答案

问题是因为您将多个 ViewController 设置为委托(delegate)。一旦您将任何 ViewController 设置为 UIGestureRecognizerDelegate 委托(delegate),该 ViewController 负责处理手势并且之前设置的任何委托(delegate)都将无效

要解决此问题,您可以在 viewWillAppear 中出现 View 时再次设置委托(delegate)

self.navigationController.interactivePopGestureRecognizer.delegate = self;

关于ios - 设置 navigationController.interactivePopGestureRecognizer.delegate = self 时,UIControllerView 向后滑动停止工作;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39082931/

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