web-dev-qa-db-fra.com

SwiftUI: le type n'est pas conforme au protocole 'UIViewRepresentable'

Je développe une nouvelle application SwiftUI et j'essaie de comprendre comment rendre ce Swift compatible avec SwiftUI: https://github.com/suzuki-0000/SKPhotoBrowser

Le problème est que je ne peux pas faire fonctionner UIViewRepresentable. J'obtiens une erreur:

Le type 'PhotoViewer' n'est pas conforme au protocole 'UIViewRepresentable'

Voici mon code:

struct PhotoViewer: UIViewRepresentable {

    @Binding var viewerImages:[SKPhoto]
    @Binding var currentPageIndex: Int

    func makeUIView(context: Context) -> SKPhotoBrowser {
        let browser = SKPhotoBrowser(photos: viewerImages)
        browser.initializePageIndex(currentPageIndex)
        browser.delegate = context.coordinator
        return browser
    }

    func makeCoordinator() -> Coordinator {
        Coordinator(self)
    }

    func updateUIView(_ browser: SKPhotoBrowser, context: Context) {
        browser.photos = viewerImages
        browser.currentPageIndex = currentPageIndex
    }

    class Coordinator: NSObject, SKPhotoBrowserDelegate {

        var control: PhotoViewer

        init(_ control: PhotoViewer) {
            self.control = control
        }

        func didShowPhotoAtIndex(_ browser: PhotoViewer) {
            self.control.currentPageIndex = browser.currentPageIndex
        }

    }
}

Qu'est-ce que j'oublie ici?

2
Filipe Sá

Peut-être avez-vous oublié de spécifier explicitement les typealias pour UIViewType?

0
Akki