如何使用 SwiftUI 将变量传递给 MFMailComposeViewController()?
Posted
技术标签:
【中文标题】如何使用 SwiftUI 将变量传递给 MFMailComposeViewController()?【英文标题】:How do I pass variables into MFMailComposeViewController() using SwiftUI? 【发布时间】: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()?
【问题讨论】:
【参考方案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 行后,您提到的主题行将起作用。
【讨论】:
以上是关于如何使用 SwiftUI 将变量传递给 MFMailComposeViewController()?的主要内容,如果未能解决你的问题,请参考以下文章