In SwiftUI, is it possible to use a modifier only for a certain os target?

前端 未结 4 1640
無奈伤痛
無奈伤痛 2021-01-12 12:16

Good day! In SwiftUI, is it possible to use a modifier only for a certain os target? In the following code I would like to use the modifier .listStyle(SidebarListStyle()) on

4条回答
  •  伪装坚强ぢ
    2021-01-12 13:06

    your better off doing this:

     import SwiftUI
    
     struct ContentView: View {
    
    @State var selection: Int?
    
    var body: some View {
        #if targetEnvironment(macCatalyst)
        return theList.listStyle(SidebarListStyle())
        #else
        return theList.navigationViewStyle(DefaultNavigationViewStyle())
        #endif
    }
    
     var theList: some View {
     HStack() {
       NavigationView {
         List () {
           NavigationLink(destination: FirstView(), tag: 0, selection: self.$selection) {
             Text("Click Me To Display The First View")
           } // End Navigation Link
    
           NavigationLink(destination: SecondView(), tag: 1, selection: self.$selection) {
             Text("Click Me To Display The Second View")
           } // End Navigation Link
    
         } // End list
         .frame(minWidth: 350, maxWidth: 350)
         .onAppear {
             self.selection = 0
         }
    
       } // End NavigationView
         .frame(maxWidth: .infinity, maxHeight: .infinity)
    
     } // End HStack
     } // End some View
     } // End ContentView
     }
    

提交回复
热议问题