Передайте EnvironmentObject как слабую ссылку на SwiftUI View.IOS

Программируем под IOS
Anonymous
Передайте EnvironmentObject как слабую ссылку на SwiftUI View.

Сообщение Anonymous »

В настоящее время мы используем координаторов для управления жизненным циклом навигации нашего приложения SwiftUI. По очевидным причинам масштабируемости мы выбрали шаблон координатора. Теперь мы хотим внедрить объект-координатор в качестве объекта среды; однако, поскольку координатор владеет родительским контроллером навигации, которому принадлежат дочерние элементы UIHostingViewControllers, мы хотим передать координатора как слабый EnvironmentObject. Возможно ли это вообще?
Код координатора:
final public class RideCoordinator: PresentingCoordinator, ObservableObject {

// MARK: - Start

public override func start(options: [String : Any]? = nil) -> MSKit.CoordinatorNavigationViewController {
_ = super.start(options: options)
let welcomeView = MainScreen().environmentObject(self)
startSwiftUIView(rootView: welcomeView, animated: false)
return navigationController
}
}

Пример просмотра:
struct MainScreen: View {

// MARK: - Environment

/// **Error** Property 'coordinator' with a wrapper cannot also be weak
@EnvironmentObject weak var coordinator: RideCoordinator?

// MARK: - View

var body: some View {
Text("Welcome")
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... iftui-view

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