Nei*_*eil 6 swiftui swiftui-list
我正在尝试复制类似的行为NavigationLink
,但在工作表而不是新屏幕上显示新视图。
目前,列表会迭代我的结构microphones
数组,并使用参数和按钮填充每个条目以显示一个工作表,其中显示该工作表的其余信息Microphone
ForEach
Microphone.model
Microphone
。
但是,列表中的第一个条目显示 的详细信息表microphones[1]
,列表中的所有其他条目显示 的详细信息表microphones[0]
。是否可以通过这种方式动态生成sheet的内容?
这是生成列表的菜单视图:
import SwiftUI
struct BrandMenu: View {
var brand: String
var filteredMicrophones: [Microphone] {
let allMicrophones: [Microphone] = Bundle.main.decode("MicrophoneTestData.json")
var filtered: [Microphone] = []
for microphone in allMicrophones {
if microphone.brand == brand {
filtered.append(microphone)
}
}
let sorted = filtered.sorted { $0.model < $1.model }
return sorted
}
@State private var showingDetails = false
var body: some View {
List(filteredMicrophones) { microphone in
if microphone.brand == self.brand {
Button(action: {self.showingDetails = true}) {
MicModelRow(microphone: microphone).contentShape(Rectangle())
}
.buttonStyle(PlainButtonStyle())
.sheet(isPresented: self.$showingDetails) {
MicDetailView(microphone: microphone, showSheet: self.$showingDetails)
}
}
}
.navigationBarTitle(Text(brand), displayMode: .inline)
}
Run Code Online (Sandbox Code Playgroud)
}
归档时间: |
|
查看次数: |
4526 次 |
最近记录: |