我可以在通知中传递手势识别器吗?

时间:2015-07-20 09:28:52

标签: ios objective-c notifications

我正在从一个班级向另一个班级发送通知,以便使用

调用方法
[[NSNotificationCenter defaultCenter]
     postNotification:[
                       NSNotification notificationWithName:@"gestureIsOn"
                       object: self
                       ]
     ];

我想在这里实现的是在另一个类中接收通知,但也传递UIGestureRecognizer以查找它是哪个视图,因为接收通知的类包含4个不同的视图。我已经尝试过这样的通知接收:

[[NSNotificationCenter defaultCenter ]addObserver:self
                                             selector:@selector(handleGestures::) name:@"gestureIsOn"
                                               object:nil];

并调用方法handleGestures

-(void)handleGestures:(UIGestureRecognizer *)sender :(NSNotification *)notification{

if(sender.view == view1)
do something

}

尝试在我的观察者通知中使用double ::但这会导致错误Terminating app due to uncaught exception 'NSInvalidArgumentException'

提前感谢所有花时间阅读本文的人。

1 个答案:

答案 0 :(得分:1)

您可以像这样发送:

[[NSNotificationCenter defaultCenter] postNotificationName:@"gestureIsOn"
                                                    object:self
                                                  userInfo:@{@"recognizer":recognizer}];

在接收方:

UIGestureRecognizer *recognizer = notification.userInfo[@"recognizer"];