【问题标题】:How do I pass variables into MFMailComposeViewController() using SwiftUI?如何使用 SwiftUI 将变量传递给 MFMailComposeViewController()?
【发布时间】:2020-03-12 19:56:33
【问题描述】:

我正在使用SwiftUI: Send email 的答案 2 中提供的代码,它可以正常工作。但是,在我的应用程序中,我想将 vc.setSubject 设置为包含一些变量:

vc.setSubject("2020_\(riderFlagNumber)_\(activeBonus.category)_\(activeBonus.city)_\(activeBonus.state),\(activeBonus.code)")

riderFlagNumber 来自 userDefaults 并且工作正常;但标记为 activeBonus 的那些来自触发电子邮件的导航详细信息视图。它们来自似乎只能从视图访问的 ObservableObject。如何将这些变量从该视图传递到 MFMailComposeViewController()?

【问题讨论】:

    标签: swift swiftui


    【解决方案1】:

    我假设您指定的包含 ObservableObject 类的视图如下所示

    class activeBonus: ObservableObject {
        @Published var category: String = "ABC"
        @Published var city: String = "Seoul"
    }
    

    如果是这样,在包含 MFMailComposeViewController() 的文件中添加以下内容(以下代码中指定的@ObserverObject 行):

    struct MailView: UIViewControllerRepresentable {
    
        @Environment(\.presentationMode) var presentation
        @Binding var result: Result<MFMailComposeResult, Error>?
        @ObservedObject var activeBonus = activeBonus()
    

    添加@ObservedObject 行后,您提到的主题行将起作用。

    【讨论】:

      猜你喜欢
      • 2021-01-31
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2018-12-28
      • 2011-04-12
      • 2017-01-24
      相关资源
      最近更新 更多