Покажи UIActivityViewController в собственном классе - PullRequest
0 голосов
/ 09 февраля 2019

Я работаю над своим приложением и хочу поделиться изображением. Сначала Я хочу представить UIActivityViewController из моего собственного класса с именем "PostCell" (класс для обработки моей ячейки-прототипа).Я получаю сообщение «Использование неразрешенного идентификатора« присутствует »» (см. Рисунок ниже).Как я могу правильно назвать виртуальный канал в моем классе?

Второй Я хочу поделиться фактическим изображением , которое находится в моем postImageView: UIImageView!в PostCell.Нужно ли мне использовать IndexPath для правильного изображения?

Не могли бы вы помочь.THX много.

import UIKit</p>

<p>class PostCell: UITableViewCell {</p>

<code>@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)
    }

}...
</code>

enter image description here

1 Ответ

0 голосов
/ 09 февраля 2019

Во-первых, UITableViewCell не имеет present метода.Это должно быть сделано из ViewController или создать ссылку в ячейке на ViewController, а затем вызвать подарок.Во-вторых, 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)
    }

}...
...