使用活动控制器共享标签



>我有以下代码

let textToShare = "Check out the test original for (String(describing: bookTitle.text))"
if let myWebsite = URL(string: "X") {//Enter link to your app here
let objectsToShare = [textToShare, myWebsite] as [Any]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
//Excluded Activities
activityVC.excludedActivityTypes = [UIActivity.ActivityType.airDrop, UIActivity.ActivityType.addToReadingList]
activityVC.popoverPresentationController?.sourceView = sender
self.present(activityVC, animated: true, completion: nil)
}

当我尝试共享标签文本 bookTitle.text 时,我得到输出 可选("测试"(。有没有办法使用 UIActivityViewController 共享 UILabel 文本?

我得到输出可选("测试"(

实际上,你的方式是正确的。除了您需要"解包"该可选属性.text。你可以用很多方式做到这一点。一种方法是强制打开包装(大多数时候不建议这样做!这样:

let textToShare = "Check out the test original for (bookTitle.text!)"

或者另一种方法是使用nil coalescing.这样:

let textToShare = "Check out the test original for (bookTitle.text ?? "")"

有关可选链接https://docs.swift.org/swift-book/LanguageGuide/OptionalChaining.html 的更多信息

附言无需使用String(describing:).您通常在print()中使用它。

最新更新