Я использую UIDocumentPickerViewController для выбора документа на iPhone.
Я реализовал эту функцию следующим образом.
class Si3EntityDocumentViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UIDocumentInteractionControllerDelegate, UIDocumentPickerDelegate, UINavigationControllerDelegate, UIDocumentMenuDelegate {
override func viewDidLoad() {
super.viewDidLoad()
setLoader()
getDocuments(id:entity.id)
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = .red
button.setTitle("Upload Doc", for: .normal)
button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(button)
// Do any additional setup after loading the view.
}
@objc func buttonAction(sender: UIButton!){
let documentPicker = UIDocumentPickerViewController(documentTypes: [String(kUTTypeText),String(kUTTypeContent),String(kUTTypeItem),String(kUTTypeData)], in: .import)
documentPicker.delegate = self
present(documentPicker, animated: true, completion: {
documentPicker.delegate = self
} )
}
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
print(urls)
}
}
Метод func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt url: URL)
устарел вiOS 11, поэтому я заменил его на func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL])
. Почему-то я не получаю обратный вызов в func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL])
У меня также есть какой-то другой код в этом классе, но я 'мы не включили это.Когда я выбираю документ или нажимаю кнопку «Отмена», в консоли появляется следующая ошибка
[DocumentManager] Служба просмотра завершила работу с ошибкой: Ошибка Domain = _UIViewServiceErrorDomain Code = 1 "(null)" UserInfo ={Прекращено = метод отключения}
Я знаю, что упускаю что-то очень глупое, любая помощь приветствуется.
Спасибо в ожидании.