在纸上进行选择后不可刷新 我再次遇到了另一个愚蠢的错误。目前的问题是这个。我正在使用Apple的MklocalsearchCompleter获取餐厅的名称和地址。我也在使用Swift ...

问题描述 投票:0回答:1

地址视图

import SwiftUI import MapKit import SwiftData struct AddressView: View { @State private var locationService = LocationService(completer: .init()) @State private var search: String = "" @Binding var isPresentingLocationView: Bool @Bindable var review: Review var body: some View { NavigationStack { ZStack { LinearGradient(gradient: Gradient(colors: [Color(red: 0.9725490196078431, green: 0.9607843137254902, blue: 0.8627450980392157, opacity: 1), Color(red: 0.9137254901960784, green: 0.9254901960784314, blue: 0.8509803921568627, opacity: 1), Color(red: 0.9882352941176471, green: 0.7529411764705882, blue: 0.13333333333333333, opacity: 1), Color(red: 0.9450980392156862, green: 0.47058823529411764, blue: 0.08627450980392157, opacity: 1)]), startPoint: .top, endPoint: .bottom).ignoresSafeArea() .navigationTitle("Add Location") VStack { HStack { Image(systemName: "magnifyingglass") TextField("Search for a restaurant", text: $search) .autocorrectionDisabled() } Spacer() List { ForEach(locationService.completions) { completion in Button(action: {didTapOnCompletion(completion)}) { VStack(alignment: .leading, spacing: 4) { Text(completion.title) .font(.headline) .fontDesign(.rounded) Text(completion.subTitle) } } .listRowBackground(Color.clear) } } .listStyle(.plain) .scrollContentBackground(.hidden) } .onChange(of: search) { locationService.update(queryFragment: search) } .padding() .presentationBackground(.regularMaterial) .presentationBackgroundInteraction(.enabled(upThrough: .large)) } } } private func didTapOnCompletion(_ completion: SearchCompletions) { isPresentingLocationView = false review.restaurantName = completion.title review.location = completion.subTitle print("this is the name \(review.restaurantName) and this is the location \(review.location)") } }

我无法弄清楚发生了什么。这也是一些GIF。

	

您应该将reviewenter image description here属性传递到地址视图,而不是创建并传递一个新实例Review

swift swiftui
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.