Когда щелкает значок камеры, окно UIImagePickerController закрывается.Я представил два UIViewController в виде FormSheet.Я добавил UITapGestureRecognizer, чтобы закрыть эти два экрана, если пользователь нажимает за пределами этих двух экранов.
Здесь я прикрепил свой код
viewDidLoad основного экрана:
UITapGestureRecognizer *tapBGGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(settingsBGTapped:)];
[tapBGGesture setNumberOfTapsRequired:1];
tapBGGesture.cancelsTouchesInView = NO;
tapBGGesture.delegate = self;
[self.view.window addGestureRecognizer:tapBGGesture];
- (void)settingsBGTapped:(UITapGestureRecognizer *)sender
{
if (sender.state == UIGestureRecognizerStateEnded)
{
CGPoint location = [sender locationInView: self.view];
//Convert tap location into the local view's coordinate system. If outside, dismiss the view.
if (![self.presentedViewController.view pointInside:[self.presentedViewController.view convertPoint:location fromView:self.view.window] withEvent:nil])
{
if(self.presentedViewController) {
[self dismissViewControllerAnimated:YES completion:nil];
}
}
}
}
Когда щелкните одинКнопка на главном экране, показывающая первый экран.
Нажатие кнопки на главном экране:
ViewController1 *vc1 = [[ViewController1 alloc] init];
vc1.modalPresentationStyle = UIModalPresentationFormSheet;
vc1.preferredContentSize = CGSizeMake(690, 600);
[self presentViewController:vc1 animated:YES completion:nil];
При нажатии одной кнопки на первом экране, отображающем второй экран.
Первыйнажатие кнопки на экране:
ViewController2 *vc2 = [[ViewController2 alloc] init];
vc2.delegate = self;
vc2.modalPresentationStyle = UIModalPresentationFormSheet;
vc2.preferredContentSize = CGSizeMake(600, 600);
[selfsentViewController: vc2 animated: YES завершение: ноль];
нажатие одной кнопки на втором экране:
- (IBAction)takePhotoClicked:(id)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:NULL];
}
Почему UIImagePickerControllerокно закрывается, когда кнопка «захватить значок» на UIImagePickerController.
Пожалуйста, помогите кому-нибудь решить эту проблему.
Примечание: Это работало нормально для предыдущей версии iOS до iOS 11