Этот вопрос похож на другие вопросы, такие как это и это , с некоторыми отличиями:
Это касается UIDocument Меню ViewController вместо UIDocument Picker ViewController.Первый был устарел в пользу последнего, но первый все еще используется ОС на старых устройствах.
Проблема возникает только тогда, когда пользователь использует«Отмена», чтобы закрыть всплывающее окно выбора документа, а не когда он на самом деле выбирает файл.
Кажется, Apple исправила все эти ошибки в iOS 12, но некоторые все еще остаются в iOS 11.
Как предлагают другие решения, я переопределяю dismissViewControllerAnimated в моем корневом контроллере представления.Он вызывается один раз, когда пользователь нажимает «Библиотека фотографий» или «Обзор», чтобы вызвать соответствующий контроллер представления.В этом случае мы передаем его на суперкласс:
-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion {
if ( self.presentedViewController) {
[super dismissViewControllerAnimated:flag completion:completion];
}
}
Но, когда пользователь нажимает «Отмена», этот dismissViewControllerAnimated вообще не вызывается, но, тем не менее, и контроллер представления выбора файлов, и мое представлениепросмотр контроллера уволен.Поэтому я не уверен, что здесь можно найти правильное решение.