在自己的 class 中显示 UIActivityViewController
Show the UIActivityViewController in own class
我正在开发我的应用,想分享一张图片。
首先 我想展示我自己 class 的 UIActivityViewController 调用 "PostCell"(class 来处理我的原型细胞)。
我收到消息 "Use of unresolved identifier 'present'"
(见下图)。我怎样才能在 class 中正确调用 vc?
第二个我想分享实际图像,它在我的 postImageView: UIImageView 中!在 PostCell 中。我必须为正确的图像使用 IndexPath 吗?
你能帮忙吗?非常感谢。
导入 UIKit
class PostCell:UITableViewCell {
@IBOutlet weak var postCaptionLabel: UILabel!
@IBOutlet weak var postImageView: UIImageView!
@IBOutlet weak var stuffButton: UIButton!
@IBAction func shareButton(_ sender: UIButton) {
if let image = UIImage(self.postImageView.image) {
let vc = UIActivityViewController(activityItems: [image], applicationActivities: [])
present(vc, animated: true)
}
}...
首先,UITableViewCell
没有present
方法。这必须从 ViewController
完成或在单元格中创建对 ViewController
的引用,然后调用 present。其次,self.postImageView.image
已经给了你一个 UIImage
,没有必要构造它。这是一个例子。
import UIKit
class PostCell: UITableViewCell {
@IBOutlet weak var postCaptionLabel: UILabel!
@IBOutlet weak var postImageView: UIImageView!
@IBOutlet weak var stuffButton: UIButton!
// Here you add a reference to the viewController. Remember to write cell.viewController = self in the cellForRow method
var viewController : UIViewController!
@IBAction func shareButton(_ sender: UIButton) {
// Here you remove the UIImage constructor.
if let image = self.postImageView.image {
let vc = UIActivityViewController(activityItems: [image], applicationActivities: [])
viewController.present(vc, animated: true)
}
}...
我正在开发我的应用,想分享一张图片。 首先 我想展示我自己 class 的 UIActivityViewController 调用 "PostCell"(class 来处理我的原型细胞)。 我收到消息 "Use of unresolved identifier 'present'" (见下图)。我怎样才能在 class 中正确调用 vc?
第二个我想分享实际图像,它在我的 postImageView: UIImageView 中!在 PostCell 中。我必须为正确的图像使用 IndexPath 吗?
你能帮忙吗?非常感谢。
导入 UIKitclass PostCell:UITableViewCell {
@IBOutlet weak var postCaptionLabel: UILabel! @IBOutlet weak var postImageView: UIImageView! @IBOutlet weak var stuffButton: UIButton! @IBAction func shareButton(_ sender: UIButton) { if let image = UIImage(self.postImageView.image) { let vc = UIActivityViewController(activityItems: [image], applicationActivities: []) present(vc, animated: true) } }...
首先,UITableViewCell
没有present
方法。这必须从 ViewController
完成或在单元格中创建对 ViewController
的引用,然后调用 present。其次,self.postImageView.image
已经给了你一个 UIImage
,没有必要构造它。这是一个例子。
import UIKit
class PostCell: UITableViewCell {
@IBOutlet weak var postCaptionLabel: UILabel!
@IBOutlet weak var postImageView: UIImageView!
@IBOutlet weak var stuffButton: UIButton!
// Here you add a reference to the viewController. Remember to write cell.viewController = self in the cellForRow method
var viewController : UIViewController!
@IBAction func shareButton(_ sender: UIButton) {
// Here you remove the UIImage constructor.
if let image = self.postImageView.image {
let vc = UIActivityViewController(activityItems: [image], applicationActivities: [])
viewController.present(vc, animated: true)
}
}...