SwiftUI с использованием NavigationLink и NavigationView

Я пытаюсь использовать NavigationView а также NavigationLinkв моем коде ниже. я слышал этоNavigationLink работает только внутри NavigationView. Однако всякий раз, когда я вставляюScrollView в NavigationView, scrollView перестает отображаться, и я получаю пустое пространство. Я не уверен, в чем причина этого.

var body: some View {
        // I tried to embed the entire VStack into NaviationView. However, it ends up showing nothing as well
            VStack(alignment: .leading) {
                Text(self.categoryName)
                    .font(.title)
                NavigationView {
                    ScrollView(.horizontal, showsIndicators: false) {
                        HStack(alignment: .top) {
                            ForEach (self.drummers) { drummer in
                                NavigationLink("Moreinfo", destination: drummerDetail(drummer: drummer))
                                aDrummer(drummer: drummer)
                                .frame(width: 300)
                                .padding(.trailing, 30)
                            }
                        }
                    }
                    .padding()
                }
            }
        
    }

1 ответ

Если aDrummer is-a View (как я предполагаю), затем см. возможное исправление ниже - контент ForEach должен быть единым представлением

ForEach (self.drummers) { drummer in
  VStack {
    NavigationLink("Moreinfo", destination: drummerDetail(drummer: drummer))
       aDrummer(drummer: drummer)
         .frame(width: 300)
         .padding(.trailing, 30)
  }
}
Другие вопросы по тегам