Падает прога, когда меняю доступ к камере

Рейтинг: 0Ответов: 1Опубликовано: 18.02.2015

Стандартный UIImagePickerController, ничего необычного. Вызываю проверку доступа. Если он есть, все ок, если нет, помогаю пользователю попасть в настройки. Меняю там доступ к камере, и App перезагружается!

 [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {

                if (granted)
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        imagePickerController = [[UIImagePickerController alloc] init];
                        imagePickerController.delegate = self;//(id <UINavigationControllerDelegate, UIImagePickerControllerDelegate>)[self class];
                        imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
                        imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;

                        [self presentViewController:imagePickerController animated:YES completion:nil];
                    });
                }
     else
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                    [UIAlertView alertViewWithTitle:nil
                                            message:@"Для использования камеры\n необходимо включить Камеру в настройках устройства."
                                  cancelButtonTitle:MD_LOCALIZE1(@"button_cancel_short")
                                  otherButtonTitles:[NSArray arrayWithObject:MD_LOCALIZE1(@"button_settings")]
                                          onDismiss:^(int buttonIndex) {

                                              NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
                                              [[UIApplication sharedApplication] openURL:url];
                                          } onCancel :^() {

                                          }];
                         });
                }

Подскажи, что делать.

Ответы

▲ 1Принят

Скопировал код, возпроизвелось. Вот очень подобная проблема: https://stackoverflow.com/questions/15930708/having-app-restart-itself-when-it-detects-change-to-privacy-settings

Тебе нужно проверить, происходит ли это в билде для продакшена, а не для дебага на реальных устройствах. Если происходит - копать в сторону UI state restoration.