在自己的 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)
    }

}...