首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果存在.navigationBarItems,列表部分将无法正常工作。

如果存在.navigationBarItems,列表部分将无法正常工作。
EN

Stack Overflow用户
提问于 2020-07-31 13:51:03
回答 1查看 91关注 0票数 0

如何在导航栏中同时有一个按钮和一个包含部分的列表?

下面是一个带有.navigationBarItems的代码

代码语言:javascript
复制
struct AllMatchesView: View {
    @Environment(\.managedObjectContext) var moc
    
    @State var events = EventData()
    
    var body: some View {
        NavigationView {
            List{
                ForEach(events.sections) { section in
                    Section(header: Text(section.title)) {
                        ForEach(section.matches) { match in
                            Text("Row")
                        }
                    }
                        .navigationBarTitle("Title")
                        .navigationBarItems(trailing:
                            NavigationLink(destination: AddMatchView().environment(\.managedObjectContext, self.moc)) {
                                Image(systemName: "plus")
                                    .resizable()
                                    .frame(width: 22, height: 22)
                                    .padding(.horizontal)
                            }
                            .padding(.leading)
                    )
                }
            }.onAppear(){
                self.events = EventData()
            }
        }
    }
}

.navigationBarItems

代码语言:javascript
复制
struct AllMatchesView: View {
    @Environment(\.managedObjectContext) var moc
    
    @State var events = EventData()
    
    var body: some View {
        NavigationView {
            List{
                ForEach(events.sections) { section in
                    Section(header: Text(section.title)) {
                        ForEach(section.matches) { match in
                            Text("Row")
                        }
                    }
                        .navigationBarTitle("Title")
                }
            }.onAppear(){
                self.events = EventData()
            }
        }
    }
}

.navigationBarItems计算结果

没有.navigationBarItems的结果

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-31 14:02:20

只需将这些修饰符从动态内容中移出,否则您将尝试为每个部分包括复制的条形项,这似乎使SwiftUI引擎变得疯狂。

代码语言:javascript
复制
    var body: some View {
        NavigationView {
            List{
                ForEach(events.sections) { section in
                    Section(header: Text(section.title)) {
                        ForEach(section.matches) { match in
                            Text("Row")
                        }
                    }
                }
            }
            .navigationBarTitle("Title")
            .navigationBarItems(trailing:
                NavigationLink(destination: AddMatchView().environment(\.managedObjectContext, self.moc)) {
                    Image(systemName: "plus")
                        .resizable()
                        .frame(width: 22, height: 22)
                        .padding(.horizontal)
                }
                .padding(.leading)
            )
            .onAppear(){
                self.events = EventData()
            }
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63193141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档