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 @@
+