NSCameraUsageDescriptionを追加するためにiOS 10+が必要です 暗号化のための写真を許可するプライバシーカメラ使用要件。UIImagePickerControllerを使用して外観トランジションを開始/終了するための不均衡な呼び出し
ポップアップはそれはそう、次のエラーの原因となっている:
アンバランスコール用/終了外観遷移を開始するにはこれは私が次のコードを最初に起動したときに表示されるようにポップアップの原因となります。
これは私が実行しようとしているコードです:できるだけ早く私はアプリは、それがクラッシュしたカメラを使用できるようにするまでのポップで[OK]を選択すると
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex (NSInteger)buttonIndex{
if (buttonIndex < 2) {
UIImagePickerController *imagePickerController[[UIImagePickerController alloc] init];
imagePickerController.mediaTypes = @[(__bridge NSString *)kUTTypeImage];
imagePickerController.allowsEditing = YES;
imagePickerController.delegate = self;
if (buttonIndex == 0) {
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
} else if (buttonIndex == 1) {
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
[self presentViewController:imagePickerController animated:NO completion:nil];
}
}
。
ポップアップが表示されないため、アプリに戻ってもう一度やり直すと、コードが実行され、それに応じて画像を取得できます。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
NSString *tmpFilePath = @"";
tmpFilePath = [_myHelper retrieveAppDirectory:self.username];
UIImage *image = [info objectForKey: UIImagePickerControllerEditedImage];
if (!image) {
[info objectForKey: UIImagePickerControllerOriginalImage];
}
NSString *imageName = [NSString stringWithFormat:@"image-%d.securedData", self.photos.count + 1];
[_myHelper performEncryptionForSecuredData:image filePath:tmpFilePath fileName:imageName];
[self.photos addObject:image];
[self.collectionView reloadData];
[picker dismissViewControllerAnimated:YES completion:nil];
}
これまでに何度も聞いたことがあります。私はおそらく間違って何を考えている?事前のおかげで....... UIActionSheet
として
このような長い質問に申し訳ありません。私は次のことを試みたが、どれも動作するように見えるない: [self.view.window.rootViewController presentViewController:imagePickerControllerアニメーション:NO完了:なし]:^ { } Iはまた、[[NSOperationQueue mainQueue] addOperationWithBlockを設定しようとしたん しかし、それはいつも初めてポップアップ表示されるようです。あなたがiOSにカメラを使うことができたら、エラーはもう現れません..... –
この問題を避けるための明白な方法は、カメラ/写真ライブラリの許可全体を通してアプリケーションを取得することです。 。 – matt
マット私はあなたのコメントに100%確信していません。あなたがカメラにアクセスすることを許可するように促すポップアップは、初めてカメラを使用しようとするときに発生しますか?ダイアログプロンプトなしでカメラの使用を許可する別の方法はありますか? –