iosxcodeswiftui

How do I get information about the phone version and phone model? SwiftUI


I have a code that allows me to send an email message from the application. How to get phone model and IOS version data .. I am a new user at SwiftUi, would appreciate any help.

See the example in the screenshot Example in the picture

Here is the code I have

import Foundation
import SwiftUI
import MessageUI

struct MailView: View {
@State private var showingMail = false

var body: some View {
    VStack {
        Button("Open Mail") {
            self.showingMail.toggle()
        }
    }
    .sheet(isPresented: $showingMail) {
        MailComposeViewController(toRecipients: [""], mailBody: "Here is mail body") {
            // Did finish action
        }
    }
}
}



struct MailComposeViewController: UIViewControllerRepresentable {

var toRecipients: [String]
var mailBody: String

var didFinish: ()->()

func makeCoordinator() -> Coordinator {
    return Coordinator(self)
}

func makeUIViewController(context: UIViewControllerRepresentableContext<MailComposeViewController>) -> MFMailComposeViewController {
    
    let mail = MFMailComposeViewController()
    mail.mailComposeDelegate = context.coordinator
    mail.setToRecipients(self.toRecipients)
    mail.setMessageBody(self.mailBody, isHTML: true)
    
    return mail
}

final class Coordinator: NSObject, MFMailComposeViewControllerDelegate {
    
    var parent: MailComposeViewController
    
    init(_ mailController: MailComposeViewController) {
        self.parent = mailController
    }
    
    func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
        parent.didFinish()
        controller.dismiss(animated: true)
    }
}

func updateUIViewController(_ uiViewController: MFMailComposeViewController, context: UIViewControllerRepresentableContext<MailComposeViewController>) {
    
}
}

Solution

  • You can do that like this

    struct ContentView: View {
        
        var systemVersion = UIDevice.current.systemVersion
        var device = UIDevice.current.name
        
          var body: some View {
            VStack {
                Text("iOS Version: \(systemVersion)")
                Text("Device: \(device)")
            }
          }
    }
    

    enter image description here


    https://developer.apple.com/documentation/uikit/uidevice