|
//
// 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
}
}
|