Swift UI 导航问题

时间:2021-04-21 22:10:49

标签: swiftui swiftui-navigationlink

所以我有一个 tabview 和一个带有 NavigationView 的搜索。如果您点击一个用户,您将转到个人资料页面,并且该个人资料页面有一个带有网格的滚动视图,您可以在其中单击并转到发布详细信息。如果我从 profileView 中删除 NavigationView,它会发布详细信息,然后返回到个人资料。如果我添加 NavigationView,它会保留在帖子详细信息上,但有两个导航栏。

搜索视图:

    // MARK: - LIST OF USERS
// LIST DIDN'T WORK, HAD TO USE SCROLLVIEW
ScrollView {
    LazyVStack(alignment: .leading) {
        ForEach(userListVM.users.filter { searchText.isEmpty ? true : $0.fullname.localizedCaseInsensitiveContains(searchText)}, id: \.id) { user in
            NavigationLink(
                destination: UserProfileView(userVM: UserViewModel(user: user)),
                label: {
                    SearchUserCellView(user: user)
                }
            )
        }
    } // END:LAZYVSTACK
} // END:SCROLLVIEW

个人资料视图:

ScrollView {
     UserProfileGridView(userVM: userVM)
} // END:SCROLLVIEW

网格视图:

// MARK: - BODY
var body: some View {
    LazyVGrid(columns: items, spacing: 2, content: {
        ForEach(postListVM.posts.filter {$0.ownerUid == userVM.user.uid}, id: \.id) { post in
            NavigationLink(
                destination: CommentView(postVM: PostViewModel(post: post)),
                label: {
                    if post.postImgUrl.isEmpty {
                        Image("dogs")
                            .resizable()
                            .scaledToFill()
                            .frame(width: width, height: width)
                            .clipped()
                    } else {
                        KFImage(URL(string: post.postImgUrl))
                            .resizable()
                            .scaledToFill()
                            .frame(width: width, height: width)
                            .clipped()
                    }
                })
        } // END:FOREACH
    }) // END:LAZYVGRID
}

0 个答案:

没有答案