SwiftUI: передать привязку как общую? ⇐ IOS
-
Anonymous
SwiftUI: передать привязку как общую?
У меня есть следующий код:
func randomString(length: Int) -> String { let Letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" return String((0.. Bool { lhs.id == rhs.id } func hash(into hasher: inout Hasher) { hasher.combine (идентификатор) } идентификатор переменной: Int { переключить себя { чехол .carDetails(пусть машина): вернуть car.id.hashValue case .foodDetails(пусть еда): вернуть food.id.hashValue } } чехол для автомобиляДетали(Автомобиль) чехол foodДетали(Еда) } @Observable класс TopViewmodel { вар navPath = NavigationPath() } структура TopView: Просмотр { @State var model = TopViewmodel() @State var car = Автомобиль() @State var foodItem = Еда() let timer = Timer.publish(каждые: 2, в: .main, в: .common).autoconnect() var body: some View { NavigationStack(путь: $model.navPath) { ВСтек { Кнопка { model.navPath.append(ViewRouter.foodDetails(foodItem)) } этикетка: { Текст(foodItem.name) } Кнопка { model.navPath.append(ViewRouter.carDetails(автомобиль)) } этикетка: { Текст(автомобиль.имя) } } } .navigationDestination(для: ViewRouter.self) { d в переключатель d { чехол .carDetails(пусть машина): ItemView(item: car) //
У меня есть следующий код:
func randomString(length: Int) -> String { let Letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" return String((0.. Bool { lhs.id == rhs.id } func hash(into hasher: inout Hasher) { hasher.combine (идентификатор) } идентификатор переменной: Int { переключить себя { чехол .carDetails(пусть машина): вернуть car.id.hashValue case .foodDetails(пусть еда): вернуть food.id.hashValue } } чехол для автомобиляДетали(Автомобиль) чехол foodДетали(Еда) } @Observable класс TopViewmodel { вар navPath = NavigationPath() } структура TopView: Просмотр { @State var model = TopViewmodel() @State var car = Автомобиль() @State var foodItem = Еда() let timer = Timer.publish(каждые: 2, в: .main, в: .common).autoconnect() var body: some View { NavigationStack(путь: $model.navPath) { ВСтек { Кнопка { model.navPath.append(ViewRouter.foodDetails(foodItem)) } этикетка: { Текст(foodItem.name) } Кнопка { model.navPath.append(ViewRouter.carDetails(автомобиль)) } этикетка: { Текст(автомобиль.имя) } } } .navigationDestination(для: ViewRouter.self) { d в переключатель d { чехол .carDetails(пусть машина): ItemView(item: car) //
Мобильная версия