How to pass one SwiftUI View as a variable to another View struct

后端 未结 6 1048
孤城傲影
孤城傲影 2020-12-30 19:24

I\'m implementing a very custom NavigationLink called MenuItem and would like to reuse it across the project. It\'s a struct that conforms to Vie

6条回答
  •  爱一瞬间的悲伤
    2020-12-30 19:53

    You can create your custom view like this:

    struct ENavigationView: View {
    
        let viewBuilder: () -> Content
    
        var body: some View {
            NavigationView {
                VStack {
                    viewBuilder()
                        .navigationBarTitle("My App")
                }
            }
        }
    
    }
    
    struct ENavigationView_Previews: PreviewProvider {
        static var previews: some View {
            ENavigationView {
                Text("Preview")
            }
        }
    }
    

    Using:

    struct ContentView: View {
    
        var body: some View {
            ENavigationView {
                Text("My Text")
            }
        }
    
    }
    
    struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ContentView()
        }
    }
    

提交回复
热议问题