Окно UIImagePickerController закрывается при захвате камеры кликом - PullRequest
0 голосов
/ 27 ноября 2018

Когда щелкает значок камеры, окно 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

...