#ios #xcode #viewcontroller #ibaction
#iOS #xcode #viewcontroller #ibaction
Вопрос:
Почему я не могу установить для делегата значение self? Я запускаю приведенный ниже код в файле viewcontroller.swift, но я хочу вызвать его в файле Render.swift. У меня запущена металлическая сцена с видом с камеры, и я хочу открыть средство выбора файлов перед ним, но, похоже, это не очень просто.
@IBAction func importFiles(_ sender: Any) {
let documentPicker = UIDocumentPickerViewController(documentTypes: [kUTTypePlainText as String], in: .import)
documentPicker.delegate = self
documentPicker.allowsMultipleSelection = false
present(documentPicker, animated: true, completion: nil)
}
В нем говорится, что невозможно присвоить значение типа ‘ViewController’ типу ‘UIDocumentPickerDelegate
В моем файле Renders.swift у меня есть функция, привязанная к кнопке, которая вызывает следующее:
//open dialog for picker...
let myVC: ViewController = ViewController()
myVC.importFiles()
Я довольно новичок во всем этом.
Ответ №1:
Почему я не могу установить для делегата значение self?
Потому что делегат должен быть UIDocumentPickerDelegate, а self
не UIDocumentPickerDelegate . Вам нужно объявить, что это:
class ViewController : UIViewController, UIDocumentPickerDelegate {
Это может вызвать другие проблемы (и я ожидаю, что так и будет), но, по крайней мере, вы пройдете точку, в которой находитесь сейчас.