diff --git a/iOS/Article/ImageViewController.swift b/iOS/Article/ImageViewController.swift index 14ac99fab..779b689c8 100644 --- a/iOS/Article/ImageViewController.swift +++ b/iOS/Article/ImageViewController.swift @@ -10,10 +10,12 @@ import UIKit class ImageViewController: UIViewController { + @IBOutlet weak var shareButton: UIButton! @IBOutlet weak var activityIndicatorView: UIActivityIndicatorView! @IBOutlet weak var imageScrollView: ImageScrollView! private var dataTask: URLSessionDataTask? = nil + private var image: UIImage? var url: URL! override func viewDidLoad() { @@ -29,9 +31,13 @@ class ImageViewController: UIViewController { dataTask = URLSession.shared.dataTask(with: url) { [weak self] data, response, error in guard let self = self else { return } + if let data = data, let image = UIImage(data: data) { + self.image = image + DispatchQueue.main.async { + self.shareButton.isEnabled = true self.activityIndicatorView.isHidden = true self.activityIndicatorView.stopAnimating() self.imageScrollView.display(image: image) @@ -44,7 +50,15 @@ class ImageViewController: UIViewController { dataTask!.resume() } + @IBAction func share(_ sender: Any) { + guard let image = image else { return } + let activityViewController = UIActivityViewController(activityItems: [url!, image], applicationActivities: nil) + activityViewController.popoverPresentationController?.sourceView = shareButton + present(activityViewController, animated: true) + } + @IBAction func done(_ sender: Any) { + dataTask?.cancel() dismiss(animated: true) } diff --git a/iOS/Base.lproj/Main.storyboard b/iOS/Base.lproj/Main.storyboard index 5ffa845a0..c046ff4b0 100644 --- a/iOS/Base.lproj/Main.storyboard +++ b/iOS/Base.lproj/Main.storyboard @@ -249,8 +249,20 @@ +