SwiftUI NavigationLink - PullRequest
       7

SwiftUI NavigationLink

0 голосов
/ 12 февраля 2020

Я работаю над тренировочным приложением SwiftUI и столкнулся с проблемой с NavigationView / NavigationLink. В настоящее время я использую API Метрополитен-музея искусств, и я хотел создать список отделов, который переходит к другому списку объектов в этом отделе, а затем этот список переходит к информации об объекте. В настоящее время настройка NavigationView / NavigationLink, которую я имею, создает несколько NavigationView и приводит к нескольким кнопкам назад / панелям навигации. Есть ли способ заставить новый NavigationView заменить старый или заставить их работать в соответствии друг с другом? Единственный способ, которым я знаю, как создать переход в SwiftUI, - через NavigationView / NavigationLink, но его создание дважды кажется неправильным способом go. У меня есть снимок экрана с текущим состоянием моего приложения. Изображение приложения На данный момент это мой код.

struct ContentView: View {

@ObservedObject var model = DepartmentListViewModel()

var body: some View {
    NavigationView {
        List {
            ForEach(model.departments, id: \.self) { department in
                NavigationLink(destination: DetailView(viewModel: DetailListViewModel(selectedDepartment: department))) {
                    Text(department.displayName)
                }
            }
        }
        .navigationBarTitle("Departments")
    }
}
}
struct DetailView: View {
@ObservedObject var viewModel: DetailListViewModel

init(viewModel: DetailListViewModel) {
    self.viewModel = viewModel
}

var body: some View {
  NavigationView {
      List {
        ForEach(viewModel.objects, id: \.self) { object in
            NavigationLink(destination: ObjectView(viewModel: ObjectListViewModel(selectedObject: object))) {
                Text(String(object))
            }
          }
      }
      .navigationBarTitle("ObjectIDs")
  }
}
}

1 Ответ

0 голосов
/ 12 февраля 2020

Вам больше не нужно NavigationView в вашем DetailView, первый обрабатывает его

...