В представлении SwiftUI присутствуют ошибки UIKit ViewControllerIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 В представлении SwiftUI присутствуют ошибки UIKit ViewController

Сообщение Anonymous »


Много раз нам требуется открыть представление, которое должно быть представлено из UIViewController в представлении SwiftUI. Яркими примерами такого подхода являются UIDocumentInteractionController, а менее известными являются SwiftyDropbox, позволяющий открыть экран входа в Dropbox в Safari для аутентификации. Распространенный метод — создать UIViewController по требованию в подклассе UIViewControllerRepresentable и представить из него контроллер представления. Но мне это никогда не помогало.

struct DropboxView: UIViewControllerRepresentable { псевдоним типа UIViewControllerType = UIViewController @Binding var isShown: Bool func updateUIViewController(_ uiViewController: UIViewController, context: Context) { если isShown { letscopeRequest = ScopeRequest(scopeType: .user, области: ["files.content.write"], includeGrantedScopes: false) DropboxClientsManager.authorizeFromControllerV2( UIApplication.shared, контроллер: uiViewController, loadingStatusDelegate: ноль, openURL: { (url: URL) -> Void в UIApplication.shared.open(url, options: [:],completeHandler: nil) }, областьRequest: областьRequest) } } func makeUIViewController(context _: Self.Context) -> UIViewController { вернуть UIViewController() } } Когда я вызываю такое представление из представления SwiftUI, используя модификатор, например:

.fullScreenCover(isPresented: $showDropboxLoginView) { DropboxView (isShown: $showDropboxLoginView) } Я получаю две ошибки:

Невозможно использовать методы сцены для URL, NSUserActivity и других внешних событий без использования жизненного цикла SwiftUI. Без жизненного цикла SwiftUI реклама и обработка внешних событий тратят ресурсы и будут иметь непредсказуемые результаты. и

Попытка представить в (из ), представление которого отсутствует в иерархии окон. Интересно, как представить такие контроллеры представления из представления SwiftUI?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»