//
|
// BaseNavigationController.swift
|
// BrokerDriver
|
//
|
// Created by 无故事王国 on 2023/4/24.
|
//
|
|
import UIKit
|
|
class BaseNavigationController: UINavigationController,UINavigationControllerDelegate {
|
|
private var popDelegate: UIGestureRecognizerDelegate?
|
|
open override func viewDidLoad() {
|
super.viewDidLoad()
|
self.navigationBar.barTintColor = .white
|
self.navigationBar.titleTextAttributes = [.font:UIFont.systemFont(ofSize: 18, weight: .medium), .foregroundColor:UIColor.black]
|
self.navigationBar.tintColor = UIColor.black
|
self.navigationBar.shadowImage = UIImage()
|
self.navigationBar.isTranslucent = true
|
self.delegate = self
|
self.popDelegate = self.interactivePopGestureRecognizer?.delegate
|
|
|
if #available(iOS 15.0, *) {
|
let scrollBar = UINavigationBarAppearance()
|
scrollBar.configureWithOpaqueBackground()
|
scrollBar.backgroundEffect = nil
|
scrollBar.shadowColor = nil
|
scrollBar.titleTextAttributes = [.foregroundColor:Def_NavFontColor,.font:Def_NavFont]
|
scrollBar.backgroundColor = UIColor.clear
|
|
|
let img = UIImage.jq_gradient([UIColor.black.withAlphaComponent(0.4),UIColor.clear], size: CGSize(width: JQ_ScreenW, height: JQ_NavBarHeight), radius: 0, locations: [0,1], direction: .vertical)
|
|
let standardBar = UINavigationBarAppearance()
|
standardBar.configureWithOpaqueBackground()
|
standardBar.backgroundEffect = nil
|
standardBar.shadowColor = nil
|
standardBar.shadowImage = nil
|
standardBar.titleTextAttributes = [.foregroundColor:Def_NavFontColor,.font:Def_NavFont]
|
standardBar.backgroundColor = UIColor.clear
|
standardBar.backgroundImage = img
|
|
navigationBar.scrollEdgeAppearance = scrollBar //顶部透明
|
navigationBar.standardAppearance = standardBar
|
|
|
}else {
|
navigationBar.titleTextAttributes = [.foregroundColor:Def_NavFontColor,.font:Def_NavFont]
|
}
|
}
|
|
open override func pushViewController(_ viewController: UIViewController, animated: Bool) {
|
viewController.hidesBottomBarWhenPushed = true
|
super.pushViewController(viewController, animated: animated)
|
}
|
|
open func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
|
|
}
|
|
//侧滑
|
public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
|
if viewController == self.viewControllers[0] {
|
self.interactivePopGestureRecognizer!.delegate = self.popDelegate
|
}else{
|
self.interactivePopGestureRecognizer!.delegate = nil
|
}
|
}
|
|
open override var childForStatusBarHidden: UIViewController? {
|
return self.topViewController
|
}
|
|
open override var childForStatusBarStyle: UIViewController? {
|
return self.topViewController
|
}
|
|
}
|