Няма описание

NavigationBackDelegate.swift 1.6KB

    // // NavigationBackDelegate.swift // PaiaiUIKit // // Created by ffib on 2019/1/11. // Copyright © 2019 yb. All rights reserved. // import Foundation public protocol NavigationBackDelegate: class { func setupNavigationBackItem() } public extension NavigationBackDelegate where Self: UIViewController { func setupNavigationBackItem() { let btn = UIButton(type: .system) btn.contentHorizontalAlignment = .left btn.frame = CGRect(x: 0, y: 0, width: 40 , height: 40) btn.setImage(UIImage(named: "navigation-back"), for: .normal) btn.addTarget(self, action: #selector(backToViewController), for: .touchUpInside) let backItem = UIBarButtonItem(customView: btn) let spaceItem = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil) spaceItem.width = -10 navigationItem.leftBarButtonItems = [spaceItem, backItem] } } public extension GestureRecognizerDelegate where Self: UIViewController & NavigationBackDelegate { func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { if gestureRecognizer == self.navigationController?.interactivePopGestureRecognizer, gestureRecognizer.isKind(of: UIPanGestureRecognizer.self), let pan = gestureRecognizer as? UIPanGestureRecognizer { let point = pan.translation(in: self.view) if point.x > 0 { return true } } return false } }