背景:
我有一个基于 MVC 的宝丽来对象。该模型保留照片的元数据和图像。视图显示照片的名称和图像(通过 UIView)。控制器可以访问模型和视图并协调它们之间的操作(例如,在视图上淡入模型照片)
我的目标:
我想在我的程序中实现一个简单的拖放功能,以便用户可以将 Polarid 的视图和视图控制器拖放到相册中。
问题:
我可以将 UIPanGestureRecognizer 添加到我的宝丽来视图中。但是,我无法从 polaroidPanned 方法访问视图控制器或模型。
添加 UIPanGestureRecognizer:
UIPanGestureRecognizer *panRecogniser = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(polaroidPanned:)];
[polaroidController.polaroidView addGestureRecognizer:panRecogniser];
这是 UIPanGestureRecognizer 处理程序:
- (void) polaroidPanned: (UIPanGestureRecognizer *) panGesture
{
CGPoint touchLocation = [panGesture locationInView:self.view];
//While being dragged
if ([panGesture state] == UIGestureRecognizerStateBegan || [panGesture state] == UIGestureRecognizerStateChanged)
{
//update the album view to the touch location
[panGesture view].center = touchLocation;
}
else if ([panGesture state] == UIGestureRecognizerStateEnded && isOntopOfAlbum)
{
//HERE I WANT TO PASS THE VIEW CONTROLLER OF THE [panGesture view] to my album
[album addPolaroidViewController: ????]
}
}
我可以通过视图,但我似乎无法引用视图的 ViewController。
有谁知道我怎么能做到这一点?或者解决它?