返回枚举中的视图

Mar*_*awq 2 swift swiftui

我有一个枚举

enum MenuLateralViewModel: Int, CaseIterable {
    case denuncia
    case autoConstatacao
    case notificacao
    case autoInfracao
    case debitos
    case profissional
    case sincronizacao
}
Run Code Online (Sandbox Code Playgroud)

对于每个我想返回不同视图的项目,我尝试这样做:

   var destino: View {
        switch self {
        
        case .denuncia: return DenunciaFiltroView()
        case .autoConstatacao: return View2()
        case .notificacao: return View3()
        case .autoInfracao: return View3()
        case .debitos: return View5()
        case .profissional: return View6()
        case .sincronizacao: return View7()
        }
    }
Run Code Online (Sandbox Code Playgroud)

但这给了我错误

协议“View”只能用作通用约束,因为它具有 Self 或关联类型要求

我怎样才能做到这一点?

小智 5

使用ViewBuilder不透明的返回类型

@ViewBuilder var destino: some View {
  switch self {
  case .denuncia: DenunciaFiltroView()
  case .autoConstatacao: View2()
  case .notificacao: View3()
  case .autoInfracao: View3()
  case .debitos: View5()
  case .profissional: View6()
  case .sincronizacao: View7()
  }
}
Run Code Online (Sandbox Code Playgroud)