Получаете ли вы доступ к атрибутам и методам UIView при использовании UIViewControllerRepresentable?

У меня есть UIViewController здесь, который используетUIView(CalendarView).

Я пытаюсь создать оболочку для ViewController с помощью UIViewControllerRepresentable. Вот код, который пытается это сделать:

struct CalendarController: UIViewControllerRepresentable{
    func makeUIViewController(context: Context) -> UIViewController {
        let calController: ViewController! = .init()
        return calController
    }
    
    func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
        //CalController.selectDate(self.date)
    }
    
    typealias UIViewControllerType = UIViewController
    
    class Coordinator {
        
    }
    
    func makeCoordinator() -> Coordinator {
        Coordinator()
    }
}

Полный файл связан снова здесь.

Вопросы:

Поскольку я использую структуру KDCalendar, и все функции написаны на UIView объект - и учитывая, что они пример проекта в этом репозитории реализует UIView с ViewController, если я смогу использовать все функции CalendarView Объект UIView через этот UIViewControllerRepresentable? Если да, то чего не хватает в моей реализации для правильного использованияViewController в SwiftUI.

Пока что это не так: однако, когда я пытаюсь реализовать CalendarView Просмотр напрямую с UIViewRepresentable wrapper, похоже, у меня нет доступа к вещам, которым, похоже, нужны возможности ViewController (пример: отображение оконного предупреждения).

Посмотреть мою полную попытку реализации можно здесь

1 ответ

Я полагаю, вы бы лучше сделать ставку, глядя на это, который UIViewRepresentable и не UIViewControllerRepresentable

Первое решение - это способ реализовать ваше представление в оболочке, предположительно так, как вы пытаетесь сами. Последний - создать экземпляры UIViewController и добавить их в интерфейс SwiftUI, который может взаимодействовать с обоими.

Я изо всех сил пытаюсь понять, что именно запрашивается, но я надеюсь, что это поможет! Если не дайте мне знать, буду любезно продолжать помогать в этом разобраться! - Счастливое кодирование