Post

Replies

Boosts

Views

Activity

Nil
I have a view which goes to my Store, gets data from an API and bringing back to the view. var productId = 123 @ObservedObject var productStore = ProductStore()       init() {     productStore.getById(productId: self.productid)   } The object from ProductStore is coming back but when I try to use it: Text(self.productStore.product!.title) I get: Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value Why this is happening if the object doesnt have nil values ?
3
0
464
Jun ’21
Http Request with Querystring Parameter
I am trying to call an API, but I need to pass the parameter via querystring. But somehow it's not working. Where is the mistake ? func getProductById(productId: String, completion: @escaping (Product) -> ()) {     guard let url = URL(string: "https://mysite.com/product/" + productId) else { return }                       var request = URLRequest(url: url)     request.httpMethod = "GET"     request.setValue("application/json; charset=UTF-8", forHTTPHeaderField: "Content-Type")             URLSession.shared.dataTask(with: request) { (data, request, error) in       guard let data = data else { return }                       do {         let product = try! JSONDecoder().decode(Product.self, from: data)         DispatchQueue.main.async {           completion(product)         }       }               catch {         //print(error)       }             }     .resume()                }
1
0
1.5k
Jun ’21
Break Line
When I use: Text("My text \nhas a break line") The output is: My text has a break line PERFECT - I have "My text" and in the next line, I have "has a break line" However if I have: Text(mymodel.description) //where this is returning from an API call and mymodel.description contains "My text \nhas a break line") It doesn't work. The output is: My text \nhas a break line Why ?
1
0
902
Jun ’21
Dismiss Modal with animation
I have a button on my modal and I want to dismiss the modal with animation. Right now it just closes it. HStack {             Spacer()             Image(systemName: "xmark")               .font(.system(size: 16, weight: .medium))               .foregroundColor(.white)               .frame(width: 36, height: 36)               .background(Color.black)               .clipShape(Circle())                               .onTapGesture {                 self.showModal.toggle() -- HERE               }                         } How can I do that ? Thx
0
0
384
Apr ’21
Render HTML
When rendering HTML into my view, I have the following part: struct HTMLStringView: UIViewRepresentable {   let htmlContent: String   func makeUIView(context: Context) - WKWebView {     return WKWebView()   }   func updateUIView(_ uiView: WKWebView, context: Context) {           let headerString = "headmeta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no'/head"     uiView.loadHTMLString(headerString + htmlContent, baseURL: nil)   } } Everything works fine but some problems: If the html is long, It will create an another vertical scrollbar inside my view (so I will have 2 scrollbars) Font family and size still dont match the original view. How can I fix it ? Thx
0
0
389
Apr ’21
TabBar
In my SwiftUI app, I have a TabBar with 2 items: a) TabItem1 b) TabItem2 However on the View itself, I created 2 buttons: a) Button A b) Button B Now I need to switch TabBar items, using the buttons on the View. How can I do this ? ******* Button(action: { //call tabItem 1  }) {     Text("TabItem1") } Button(action: { //call tabItem 2  }) {     Text("TabItem2") } ***************************       TabView {       TabView1View()         .tabItem {           Text("TabItem1")         }               TabView2View()         .tabItem {           Text("TabItem2")         } Thank you
1
0
282
Apr ’21
Convert HTML to Text
In my SwiftUI project, I am trying to convert HTML to Text. Text("h1Test/h1p Test/pbr/spanTest/spanulliitem1/liliitem2/li/ul")           .font(.body)           .frame(maxWidth: .infinity, alignment: .leading)           .padding(.bottom, 16)           Is there a way to make it happen ? Thank you
2
0
4.3k
Apr ’21
Open Modal
I have a ForEach listing a lot of eventos, having 1 image button for each of them. When the button is clicked, I will open a modal with the selectedEvento. The problem is even though I've the line "self.selectedEvento = evento" inside of the button actions, when I click the button for the first time, the selectedEvento is being passed as nil. However if I click a second button, the process will happen succesfully. Code: ... @State var showModal = false @State var selectedEvento: Evento! ... ForEach(store.eventos) { evento in           VStack() {             Button(action: {               self.selectedEvento = evento               self.showModal.toggle()                             }) {             WebImage(url: evento.thumbnail)             }           }           .sheet(isPresented: $showModal) {             if self.selectedEvento != nil {               //open detailView             } else {               Text("Some Error State goes here")             }           }         } ** Why is this happening ? Shoudn't the first click also to be passing the selectedEvento ? Why it doesnt happen ? Thx
1
0
280
Apr ’21