每个列表元素都可以导航到SwiftUI中的新视图吗?

时间:2020-06-03 21:49:29

标签: swift swiftui swiftui-list swiftui-navigationlink

我是SwiftUI的新手,我正在尝试创建一个包含大学学位的每个模块的列表。我希望(单击时)每个模块可以导航到单独的新视图。这是我希望实现的目标:

首页->列表页->每个模块页面。

NavigationLink似乎对所有列表元素只有一个可能的目的地。有什么办法吗?先感谢您。 这是我当前的代码:

struct ListView: View {
    var modules: [Module] = []
    var body: some View {
        NavigationView {
        List(modules) { module in
            NavigationLink(destination: QuizView()) {
            VStack(alignment: .leading) {
                Text(module.name)
                Text("\(module.questions) questions")
                    .foregroundColor(.secondary)
                    .font(.subheadline)

            }
            }
        }
        .navigationBarTitle(Text("Modules"))
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以尝试根据某个值(例如import React, {Component} from 'react'; import NavigationItems from './NavigationItems/NavigationItems'; import classes from './Navigation.module.css'; import {connect} from 'react-redux'; const mapStateToProps = state => { console.log(state) return { categoryURL: state.categoryUrl }; }; class navigation extends Component { componentDidMount() { console.log(this.props.categoryUrl); } componentDidUpdate(prevProps, prevState, snapshot) { console.log('NAVIGATION!', this.props.categoryUrl); } render() { let nav = null; if (this.props.categoryUrl) { nav = ( <div className={classes.Navigation}> <NavigationItems/> </div> ) } return ( <> {nav} </> ) } } export default connect(mapStateToProps, null)(navigation); )返回特定的View

module.name
var modules: [Module] = []
var body: some View {
    NavigationView {
        List(modules) { module in
            NavigationLink(destination: moduleView(name: module.name)) {
                VStack(alignment: .leading) {
                    Text("\(module.id)")
                }
            }
        }
        .navigationBarTitle(Text("Modules"))
    }
}