//
|
// BaseViewController.swift
|
// BrokerDriver
|
//
|
// Created by 无故事王国 on 2023/4/24.
|
//
|
|
import UIKit
|
import RxSwift
|
import RxRelay
|
import RxCocoa
|
|
class BaseVC: UIViewController {
|
|
var disposeBag:DisposeBag!
|
var yy_popBlock:(() -> Void)?
|
open var nav_back_img:UIImage = UIImage.init(named: "btn_back") ?? UIImage.init() {
|
didSet {
|
let btn = navigationItem.leftBarButtonItem?.customView as! UIButton
|
btn.setImage(nav_back_img, for: .normal)
|
}
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
disposeBag = DisposeBag()
|
setUI()
|
setRx()
|
setData()
|
|
if navigationController?.viewControllers.count ?? 0 > 1{
|
|
if navigationController is BaseNav{
|
navigationItem.leftBarButtonItem = UIBarButtonItem.jq_creat(image: nav_back_img.withTintColor(.white), target: self, alignment:.left, action: #selector(backItemEvent)).item
|
}else{
|
navigationItem.leftBarButtonItem = UIBarButtonItem.jq_creat(image: nav_back_img, target: self, alignment:.left, action: #selector(backItemEvent)).item
|
}
|
}
|
|
}
|
|
func setRx(){
|
NotificationCenter.default.rx.notification(UIDevice.orientationDidChangeNotification).take(until:self.rx.deallocated).subscribe {[weak self] _ in
|
let orient = UIDevice.current.orientation
|
var desc = ""
|
// switch orient {
|
// case .portrait :desc = Localized("屏幕正常竖向")
|
// case .portraitUpsideDown:desc = Localized("屏幕倒立")
|
// case .landscapeLeft:desc = Localized("屏幕左旋转")
|
// case .landscapeRight:desc = Localized("屏幕右旋转")
|
// default:break
|
// }
|
|
if !desc.isEmpty{
|
self?.receiverNotification(orient: orient, desc: desc)
|
}
|
}.disposed(by: disposeBag)
|
}
|
|
func setUI(){
|
view.backgroundColor = .white
|
}
|
|
func setData(){
|
|
}
|
|
func refreshUI(){}
|
|
func push(vc:UIViewController){
|
vc.hidesBottomBarWhenPushed = true
|
navigationController?.pushViewController(vc, animated: true)
|
}
|
|
override var preferredStatusBarStyle: UIStatusBarStyle{
|
return .lightContent
|
}
|
|
@objc fileprivate func backItemEvent() {
|
// 拦截pop事件
|
if (yy_popBlock != nil) {
|
yy_popBlock?()
|
return
|
}
|
navigationController?.popViewController(animated: true)
|
}
|
|
|
deinit {
|
LogInfo(String(format: "%@ 已释放", NSStringFromClass(self.classForCoder).components(separatedBy: ".").last!))
|
}
|
|
|
/// 屏幕旋转:当设备方向改变,需要对UI进行重新布局,子类重写此方法
|
@objc open func receiverNotification(orient:UIDeviceOrientation,desc:String){
|
LogInfo(desc)
|
refreshUI()
|
}
|
|
}
|