Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protocol CartButtonProtocol: AnyObject {
- var cartBarButton: UIBarButtonItem? { get set }
- }
- private var UIBarButtonKey: UInt8 = 0
- extension CartButtonProtocol {
- var cartBarButton: UIBarButtonItem? {
- get {
- return objc_getAssociatedObject(self, &UIBarButtonKey) as? UIBarButtonItem
- } set {
- guard let newValue = newValue else { return }
- objc_setAssociatedObject(
- self,
- &UIBarButtonKey,
- newValue as AnyObject,
- objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC
- )
- }
- }
- }
- extension UIViewController: CartButtonProtocol {
- func configureCartBarButtonItem() {
- let image = Asset.icShoppingCartWhite.image.resizeImage(withScale: 0.5)
- let badgeButton = UIButton()
- badgeButton.setImage(image, for: .normal)
- badgeButton.addTarget(self, action: #selector(didTappedCartButton(_:)), for: .touchUpInside)
- cartBarButton = UIBarButtonItem(customView: badgeButton)
- navigationItem.rightBarButtonItem = cartBarButton
- }
- @objc
- private func didTappedCartButton(_ sender: UIBarButtonItem) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement