【问题标题】:using the activityController to share label使用 activityController 共享标签
【发布时间】:2019-09-21 18:43:42
【问题描述】:

我有以下代码

 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 时,我得到输出 Optional("Test")。有没有办法使用 UIActivityViewController 共享 UILabel 文本?

【问题讨论】:

    标签: ios swift uiactivityviewcontroller


    【解决方案1】:

    我得到输出 Optional("Test")

    实际上,您的方法是正确的。除非您需要“解开”该可选属性.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

    P.S 不需要使用String(describing:)。您通常在print() 中使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多