SwiftUI 导航链接

Posted

技术标签:

【中文标题】SwiftUI 导航链接【英文标题】:SwiftUI NavigationLink 【发布时间】:2020-05-28 05:35:59 【问题描述】:

我正在开发一个 SwiftUI 练习应用程序,但遇到了 NavigationView/NavigationLink 的问题。我目前正在使用大都会艺术博物馆 API,我想制作一个部门列表,该列表与该部门中的另一个对象列表相衔接,然后该列表与该对象的信息相衔接。目前,我拥有的 NavigationView/NavigationLink 设置正在创建多个 NavigationView,并导致多个后退按钮/导航栏。有没有办法让新的 NavigationView 替换旧的或者让它们相互配合?我知道如何在 SwiftUI 中创建 segue 的唯一方法是通过 NavigationView/NavigationLink 但创建两次似乎是错误的处理方式。我有我的应用程序当前状态的屏幕截图。 App Image 这是我目前的代码。

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】:

您的 DetailView 中不再需要 NavigationView,第一个处理它

【讨论】:

感谢您的回复!我认为我需要在视图中工作。谢谢!

以上是关于SwiftUI 导航链接的主要内容,如果未能解决你的问题,请参考以下文章

文本字段点击正在关闭 SwiftUI 中的导航链接

SwiftUI 导航链接

SwiftUI:导航链接中的自定义标签显示为灰色

SwiftUI:如何更改用户按住导航链接或按钮等内容时发生的颜色变化?

使用表单 SwiftUI 的导航链接

SwiftUI 和双导航栏