swift - 导航链接字符串
问题描述
我试图为此找到正确的方法
struct MainMenu: View {
let items = [
item(title: "Menu 1", image: "img1", imgColor: .orange, navMenu: "Menu1"),
item(title: "Menu 2", image: "img2", imgColor: .orange, navMenu: "Menu2"),
这是 NavigationLink 的代码,但可能写得不好。我需要用 navMenu 中的名称填写目的地。这与 Menu1.swift 和另一个相同
VStack {
HStack {
personView
ObjectView
}
LazyVGrid(columns: columns, spacing: spacing) {
ForEach(items) { item in
NavigationLink(destination: \(String(item.navMenu))()){
Text("")
} label: {
ItemView(item: item)
}
}
}
// .padding(.horizontal)
}
在下一步我做这个。
var body: some View {
LinearGradient(gradient: Gradient(colors: [.purple, .blue]), startPoint: .topLeading, endPoint: .bottomTrailing)
.edgesIgnoringSafeArea(.all)
let columns = Array(
repeating: GridItem(.flexible(), spacing: spacing),
count: numbersOfColumns)
VStack {
HStack {
personView
objectView
}
LazyVGrid(columns: columns, spacing: spacing) {
ForEach(items) { item in
NavigationLink(destination: Text(item.navMenu)) {
ItemView(item: item)
}
}
}
}
但是单击项目后,不会调用下一个菜单。Menu1.swift
这仅打开带有文本 Menu1 的空白表
最后我需要在 LazyVGrid 中使用这个项目,比如下一个 *.swift 文件的按钮
简短的描述。在另一个 *.swift 文件中,我有
NavigationLink(destination: Menu1()) {
Button_register()
}
单击按钮后的此代码将我带到下一个名为 Menu1.swift 的快速文件
我需要这个相同但集成在 LazyVGrid 中的项目中,但 Menu1.swift 的路径将从 navMenu 中的文本组合。
对不起,也许我说的不好。
解决方案
推荐阅读
- javascript - 如何在新页面或标签中打开此 javascript?
- vue.js - 如何让 vue-router 在浏览器中使用 esm
- c++ - 在 C++ 中的数字末尾添加一个数字(不是求和)
- vue.js - 将站点的zurb基础导入nuxt项目的简便方法?
- javascript - Flask-当 html 尝试访问 Javascript 文件时出现 404 错误
- javascript - 在 Wordpress 中排队 jQuery
- angular - Angular 组件 HTML 模板包含对自身的引用
- c - 如何从C中的函数更改全局定义的变量
- animation - 颤振是否支持动画 svg?
- javascript - 在时髦的地图中播放 m3u8 视频