Я могу использовать SFSafariViewController
в своем приложении SwiftUI
с видом, который соответствует UIViewControllerRepresentable
, но я не могу сделать то же самое для UIReferenceLibraryViewController
.
Когда язык словарь доступен, например, на моем устройстве, и мой термин может быть определен, мое приложение неожиданно ломается в UIReferenceLibraryViewController
, и дисплей моего приложения пуст. Когда мой термин gibberi sh или словарь языка недоступен, например, в Preview или Simulator, мое приложение, как и ожидалось, отображает представление без определения.
Мое приложение, как и следующий небольшой пример неожиданно обрывается в:
return UIReferenceLibraryViewController (term: "hello") // Поток 1: EXC_BREAKPOINT (code = 1, субкод = 0x1e4bee02 c
import SwiftUI
struct ContentView: UIViewControllerRepresentable {
func makeUIViewController(context: UIViewControllerRepresentableContext<ContentView>) -> UIReferenceLibraryViewController {
return UIReferenceLibraryViewController(term: "hello")
}
func updateUIViewController(_ uiViewController: UIReferenceLibraryViewController, context: UIViewControllerRepresentableContext<ContentView>) {
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Изменение примера для соответствия UIViewRepresentable
или вставка UIViewController
в иерархию приводит к тому же результату.
Добавление UIReferenceLibraryViewController
.dictionaryHasDefinition для защиты вызовов к UIReferenceLibraryViewController
не меняет поведение.
Я уже некоторое время программирую, но я новичок в Swift и SwiftUI. Боюсь, что я могу упустить или неправильно понять основы c Swift или Концепция SwiftUI.
Что я могу сделать, чтобы UIViewControllerRepresentable
работал в SwiftUI?
Xcode 11.3.1, iOS 13.3.1