UIDocumentPickerViewController を使用しようとしていますが、iOS 11.0 以降のアプリをターゲットにする必要があります。iOS バージョン 11.0、12.0、および 13.4 のシミュレーターでテストしています。デリゲート メソッド didPickDocumentsAtURLs は、11.0 および 12.0 では呼び出されませんが、13.4 バージョンの iOS では呼び出されます。documentPickerWasCancelled は、すべての場合に呼び出されます。
問題を再現できる最小のコードを次に示します。ボタンが 1 つしかないメイン ビューがあり、ボタン タップ ハンドラーが以下に定義されています。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)documentPicker:(UIDocumentPickerViewController *)controller
didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls {
}
- (void)documentPickerWasCancelled:(UIDocumentPickerViewController *)controller {
}
- (IBAction)buttonTapped:(id)sender {
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.data"] inMode:UIDocumentPickerModeImport];
documentPicker.delegate = self;
[self presentViewController:documentPicker animated:YES completion:nil];
}
@end
更新: これは iCloud ドライブ ファイルに対して呼び出されますが、ローカル ファイルに対しては呼び出されません。