gpt4 book ai didi

iphone - 将 UIGestureRecognizer 从一个 View Controller 转发到另一个 View Controller

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:17 24 4
gpt4 key购买 nike

我正在将 UIGestureRecognizer 添加到我的一个 View Controller view 中。

我想要的行为是当这个手势被识别时关闭手势 View Controller 并将它转发到另一个 View Controller 。 (我要转发的view controller已经给view controller呈现了手势)

现在,当我关闭 View Controller 时,捏合手势识别器(逻辑上)失败了。

有什么建议吗?谢谢。

最佳答案

\编辑:现在代理获得了 gestureRecognizer 的参数。

你可以像这样实现协议(protocol):

@protocol ViewControllerWithGestureRecognizerDelegate

- (void)viewControllerGestureRecognizerEvent:(UIPinchGestureRecognizer *)gestureRecognizer;

@end

并将委托(delegate)属性添加到 View Controller ,其中将显示手势识别器。

@property (nonatomic, weak) id<ViewControllerWithGestureRecognizerDelegate> delegate;

然后将手势识别器添加到您的 View Controller 中:

 UIPinchGestureRecognizer *gestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognizerAction:)];
[self addGestureRecognizer:gestureRecognizer];

在手势识别器的action方法中调用delegate方法:

 - (void)gestureRecognizerAction:(UIPichGestureRecognizer *)gestureRecognizer
{
[self.delegate viewControllerGestureRecognizerEvent:gestureRecognizer];
}

在第二个 View Controller 中实现协议(protocol) ViewControllerWithGestureRecognizerDelegate(您希望在其中获得有关手势识别器事件的通知)并将手势识别器的 View Controller 的委托(delegate)设置为第二个 View Controller 。

 ViewControllerWithGestureRecognizer.delegate = ViewControllerInWhichYouWantToGetNotifiedAboutGestureRecognizerEvents.

这样,每次手势识别器都会调用一个 View Controller 上的方法,第二个 View Controller 就会收到通知。

关于iphone - 将 UIGestureRecognizer 从一个 View Controller 转发到另一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17724902/

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