Skip to content

Commit a3cffd9

Browse files
authored
Merge pull request #15 from OutSystems/fix/RMET-527-iPad-dismiss-modal-issue
RMET-527 - iPad dismiss modal ImagePicker clicking outside issue fix
2 parents 34865ca + 013ad8c commit a3cffd9

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

ios/CsZBar.m

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ @interface CsZBar ()
88
@property bool scanInProgress;
99
@property NSString *scanCallbackId;
1010
@property AlmaZBarReaderViewController *scanReader;
11+
@property (strong, nonatomic) UITapGestureRecognizer *tapOutsideRecognizer;
1112

1213
@end
1314

@@ -100,7 +101,7 @@ - (void)scan: (CDVInvokedUrlCommand*)command;
100101

101102
self.scanReader.cameraOverlayView = polygonView;
102103
}
103-
104+
[self.viewController.view.window addGestureRecognizer:self.tapBehindGesture];
104105
[self.viewController presentViewController:self.scanReader animated:YES completion:nil];
105106
}
106107
}
@@ -170,4 +171,27 @@ - (void) readerControllerDidFailToRead:(ZBarReaderController*)reader withRetry:(
170171
}];
171172
}
172173

174+
- (UITapGestureRecognizer*)tapBehindGesture
175+
{
176+
if (_tapOutsideRecognizer == nil)
177+
{
178+
_tapOutsideRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapBehindRecognized)];
179+
_tapOutsideRecognizer.numberOfTapsRequired = 1;
180+
_tapOutsideRecognizer.cancelsTouchesInView = NO;
181+
_tapOutsideRecognizer.delegate = self;
182+
}
183+
184+
return _tapOutsideRecognizer;
185+
}
186+
187+
-(void)tapBehindRecognized {
188+
[self.viewController.view.window removeGestureRecognizer:self.tapBehindGesture];
189+
self.scanInProgress = NO;
190+
}
191+
192+
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
193+
{
194+
return YES;
195+
}
196+
173197
@end

0 commit comments

Comments
 (0)