diff options
author | Nicholas Tay <nick@windblume.net> | 2022-07-18 00:07:21 +1000 |
---|---|---|
committer | Nicholas Tay <nick@windblume.net> | 2022-07-18 00:07:21 +1000 |
commit | 8b255702c674bf1bfeca96697711f6e4f088dfdb (patch) | |
tree | 98a3ee132dd02973ca1e5c02136b3fe539b22275 /foray/Scenes | |
parent | bd7761216a065b0dd859cb19d709996739a240cd (diff) | |
download | forayios-8b255702c674bf1bfeca96697711f6e4f088dfdb.tar.gz forayios-8b255702c674bf1bfeca96697711f6e4f088dfdb.tar.bz2 forayios-8b255702c674bf1bfeca96697711f6e4f088dfdb.zip |
Try out 'share' aka UIActivityViewController
Diffstat (limited to 'foray/Scenes')
-rw-r--r-- | foray/Scenes/ForayDetailView.swift | 29 | ||||
-rw-r--r-- | foray/Scenes/ForayDetailViewController.swift | 12 |
2 files changed, 39 insertions, 2 deletions
diff --git a/foray/Scenes/ForayDetailView.swift b/foray/Scenes/ForayDetailView.swift index 5997016..cd70ffc 100644 --- a/foray/Scenes/ForayDetailView.swift +++ b/foray/Scenes/ForayDetailView.swift @@ -38,6 +38,21 @@ class ForayDetailView: UIView { l.numberOfLines = 10 return l }() + + private lazy var shareButton: UIButton = { + let b = UIButton() + b.addTarget(self, action: #selector(onShareButton), for: .touchUpInside) + b.setTitle("Share", for: .normal) + b.setTitleColor(UIColor.systemBlue, for: .normal) + b.backgroundColor = UIColor.clear + return b + }() + + enum ActionType { + case onShare + } + + var onAction: ((ActionType) -> Void)? override init(frame: CGRect) { super.init(frame: frame) @@ -56,6 +71,7 @@ class ForayDetailView: UIView { container.addSubview(nameLabel) container.addSubview(itemImageView) + container.addSubview(shareButton) container.addSubview(descLabel) setupConstraints() @@ -80,8 +96,14 @@ class ForayDetailView: UIView { make.leading.trailing.equalToSuperview() make.height.equalTo(150) } + shareButton.snp.makeConstraints { (make) in + make.top.equalTo(itemImageView.snp.bottom).offset(16) + make.width.equalTo(50) + make.height.equalTo(25) + make.centerX.equalToSuperview() + } descLabel.snp.makeConstraints { (make) in - make.top.equalTo(itemImageView.snp.bottom).offset(32) + make.top.equalTo(shareButton.snp.bottom).offset(32) make.leading.trailing.equalToSuperview() make.bottom.equalTo(container.snp.bottom).inset(16) } @@ -93,4 +115,9 @@ class ForayDetailView: UIView { itemImageView.image = image } + @objc + private func onShareButton() { + onAction?(.onShare) + } + } diff --git a/foray/Scenes/ForayDetailViewController.swift b/foray/Scenes/ForayDetailViewController.swift index 52aa6b8..24de38f 100644 --- a/foray/Scenes/ForayDetailViewController.swift +++ b/foray/Scenes/ForayDetailViewController.swift @@ -13,10 +13,19 @@ class ForayDetailViewController: UIViewController, HasCustomView, Coordinated { typealias CoordinatorType = ForayCoordinator var coordinator: ForayCoordinator? - + private var item: PenguinItemViewModel? + override func viewDidLoad() { super.viewDidLoad() self.title = "Details" + + customView.onAction = { [weak self] (action) in + guard let self = self, let item = self.item else { return } + switch action { + case .onShare: + self.coordinator?.share(item: item) + } + } } override func loadView() { @@ -24,6 +33,7 @@ class ForayDetailViewController: UIViewController, HasCustomView, Coordinated { } public func setDetails(item: PenguinItemViewModel) { + self.item = item let image: UIImage var description: String = "Type: " switch item.type { |