You need to use @ViewBuilder in this case (and remove returns, because return disables ViewBuilder)
struct NavigationViewManager {
@ViewBuilder
static func make<V: View>(_ kind: NavigationViewKind, _ contentView: @escaping () -> V) -> some View {
switch kind {
case .test1(let text):
NavigationView {
contentView()
.navigationBarTitle(text, displayMode: .inline)
}
case .test2:
NavigationView {
contentView()
.navigationBarTitle("Initial", displayMode: .large)
}
}
}
}