2

I have a DropAreaViewController in my app. Inside this controller I run the following code:

- (void)viewDidLoad {
    [super viewDidLoad];

    UIDropInteraction *interaction = [[UIDropInteraction alloc] initWithDelegate:self];
    [self.view addInteraction:interaction];
}

- (BOOL)dropInteraction:(UIDropInteraction *)dropInteraction canHandleSession:(nonnull id<UIDropSession>)session {
    NSLog(@"canHandleSession called");
    return true;
}

- (UIDropProposal *)dropInteraction:(UIDropInteraction *)dropInteraction sessionDidUpdate:(nonnull id<UIDropSession>)session {
    NSLog(@"sessionDidUpdate");
    if (session.localDragSession != nil) {
        NSLog(@"is localDragSession");
        return [[UITableViewDropProposal alloc] initWithDropOperation:UIDropOperationMove intent:UITableViewDropIntentInsertAtDestinationIndexPath];
    } else {
        return [[UITableViewDropProposal alloc] initWithDropOperation:UIDropOperationCancel];
    }
}

- (void)dropInteraction:(UIDropInteraction *)interaction performDrop:(id<UIDropSession>)session {
    self.view.backgroundColor = [UIColor redColor];
}

Now, in another viewcontroller I add this controller:

DropAreaViewController *davc = [[DropAreaViewController alloc] init];
davc.view.frame = CGRectMake(0, 0, 100, 100);
[self.view addSubview:davc.view];

None of the drops are being registered though. I get not logs at all when I hover a drop on top of the square. Any ideas?

user4992124
  • 1,574
  • 1
  • 17
  • 35

0 Answers0