如何为每个设备创建另一个独特的视图?
Posted
技术标签:
【中文标题】如何为每个设备创建另一个独特的视图?【英文标题】:How do I create another unique view for each device? 【发布时间】:2021-10-22 04:29:34 【问题描述】:当用户选择设备时如何创建另一个视图?对于每个设备,视图不会相同,因为给出的信息不会相同(自定义视图) 谢谢你让我走上正轨。
Canvas image
struct ContentView: View
var body: some View
NavigationView
List(ios, children: \.sousMenuIos) item in
HStack
Image(item.image)
.resizable()
.scaledToFit()
.frame(width: 60, height: 60)
Text(item.name)
.font(.system(.title3, design: .rounded))
.bold()
.navigationTitle("Jailbreak")
struct ContentView_Previews: PreviewProvider
static var previews: some View
ContentView()
【问题讨论】:
这有帮助吗? SwiftUI Navigation View - Handling Size Classes over multiple views. 不清楚你在问什么,这也不是一个可运行代码的最小示例。 但是,我觉得这很清楚。我只想为列表中的每个设备打开一个特定视图 @GuillaumeCombot 哦,您的意思是导航到新视图(其中可能包含有关设备的更多信息)?如果是这样,您可能正在寻找NavigationLink
。 顺便说一句:回复时使用@...
,以便我收到通知
只需在项目导航器中选择文件目标即可。您可以调用特定文件/查看相同的内容,Xcode 将根据可用于目标的文件选择正确的文件
【参考方案1】:
您需要将列表标签包装在 NavigationLink 中,并将项目传递给您想要的服装视图。这是一个带有虚拟数据的工作示例。
struct ListItems: View
var body: some View
NavigationView
List(iOS.previewData) item in
NavigationLink(destination: CostumView(text: item.name))
HStack
Image(systemName: item.image)
.resizable()
.scaledToFit()
.frame(width: 60, height: 60)
Text(item.name)
.font(.system(.title3, design: .rounded))
.bold()
.navigationTitle("Jailbreak")
struct CostumView: View
var text: String
var body: some View
Text(text)
struct ListItems_Previews: PreviewProvider
static var previews: some View
ListItems()
struct iOS: Identifiable
var id = UUID()
var image: String = ""
var name: String
static let previewData = [
iOS(image: "phone", name: "iPhone 8"),
iOS(image: "phone", name: "iPhone X")
]
【讨论】:
以上是关于如何为每个设备创建另一个独特的视图?的主要内容,如果未能解决你的问题,请参考以下文章
如何为我在回收站视图中的卡片视图中的每个项目创建一个点击监听器
如何为数组中的每个创建一个具有唯一图像和选择器的自定义 UIButton?
如何为用户输入文本时将动态创建的每个单元格设置按钮操作(Swift 4)?