Apologies
You must be signed in to watch this lesson.
Show UIViewController with UIViewControllerRepresentable Container
SwiftUI Mastery Travel Discovery
In today's lesson, I wanted to walk you through how to wrap a UIViewController inside of a container like object called UIViewControllerRepresentable. This container will allow us to insert our view into the body of our SwiftUI View components. Next lesson, we'll move onto transforming this standard view into a UIPageViewController.

Comments (3)
iTollMouS
3 years ago
Here is what I did for the Stars View @State var rating: Double = 3.0 @State var starSize = 26.0 CosmosRatingView(rating: $rating, starSize: $starSize) { result in rating = result } Text("\(String(format: "%0.02f", rating)) \(rating <= 1 ? "Star" : "Stars")") --------------------------------------------------------------------------------------------------------------------- import SwiftUI import Cosmos // A SwiftUI wrapper for Cosmos view struct CosmosRatingView: UIViewRepresentable { @Binding var rating: Double @Binding var starSize: Double let cosmosView = CosmosView() var didFinishRating: ((Double) -> Void)? func makeUIView(context: Context) -> CosmosView { CosmosView() } func updateUIView(_ uiView: CosmosView, context: Context) { uiView.rating = rating uiView.settings.fillMode = .half uiView.didFinishTouchingCosmos = { value in didFinishRating?(value) } uiView.didTouchCosmos = { value in didFinishRating?(value) } // Autoresize Cosmos view according to it intrinsic size uiView.setContentHuggingPriority(.defaultHigh, for: .vertical) uiView.setContentHuggingPriority(.defaultHigh, for: .horizontal) // Change Cosmos view settings here uiView.settings.starSize = starSize } } struct ContentView: View { @State var rating = 3.0 @State var starSize = 30.0 var body: some View { CosmosRatingView(rating: $rating, starSize: $starSize) } } struct ReviewView_Previews: PreviewProvider { static var previews: some View { ContentView() } }
iTollMouS
3 years ago
Kinda wondering why you didnt go with TabView{ Text("123") Text("123") Text("123") }.tabViewStyle(PageTabViewStyle())
Brian Voong
3 years ago
iTollMouS
3 years ago
thanks for the reply . I admire your work . waiting for any SwiftUI course ?
Brian Voong
3 years ago
KyloR_
2 years ago
Hey Brian, Unless I'm misunderstanding (haven't got to the Restaurants Grid View Carousel component yet!), can't you achieve what you're after by setting a selection on the TabView? I'm referencing this StackOverflow post for context: https://stackoverflow.com/questions/57802440/how-to-set-a-default-tab-in-swiftuis-tabview Thanks!
iTollMouS
3 years ago
If your goal is to teach us how to borrow any UIKit component, that is great , if not ; here how I done it var body: some View{ ScrollView{ TabView{ Image(destination.imageName) .resizable() .scaledToFill() Image(destination.imageName) .resizable() .scaledToFill() }.tabViewStyle(PageTabViewStyle(indexDisplayMode: .always)) .frame(height: 300) .clipped() // the rest of the code .........
HELP & SUPPORT