123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- //
- // RootNavigationController.swift
- // SolarStationSwift
- //
- // Created by weclouds on 2018/8/8.
- // Copyright © 2018年 weclouds. All rights reserved.
- //
- import UIKit
- class RootNavigationController: UINavigationController {
- var callback : (()->Void)? // 回调函数
-
- var navTitle: String?
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setNavigationBar()
- // Do any additional setup after loading the view.
- }
- func setNavigationBar() {
- let apperance = UINavigationBar.appearance()
-
- // //设置半透明效果
- self.navigationBar.isTranslucent = false
- //将导航栏上按钮颜色
- apperance.tintColor = UIColor(hexString: "222222")
- //消除分割线
- navigationBar.setBackgroundImage(UIImage(), for: .default)
- navigationBar.shadowImage = navBarShadowImage()
- //navigationBar.isHidden = true
- let dict:NSDictionary = [NSAttributedString.Key.foregroundColor: UIColor(hexString: "#222222"),NSAttributedString.Key.font : UIFont(name: PingFangSC_Semibold, size: 19)]
- //标题颜色
- navigationBar.titleTextAttributes = dict as? [NSAttributedString.Key : AnyObject]
-
- // //设置导航栏title格式
-
-
-
- let backAppearance = UIBarButtonItem.appearance()
- //设置导航栏返回按钮
- if #available(iOS 11, *){
- backAppearance.setBackButtonTitlePositionAdjustment(UIOffset(horizontal: -200, vertical: 0), for: UIBarMetrics.default)
-
- let backButtonImage = UIImage(named: "fanhui")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
-
- apperance.backIndicatorImage = backButtonImage
- apperance.backIndicatorTransitionMaskImage = backButtonImage
- }else {
- //返回按钮没有文字
- backAppearance.setBackButtonTitlePositionAdjustment(UIOffset(horizontal: -200, vertical: 0), for: UIBarMetrics.default)
- let backButtonImage = UIImage(named: "fanhui")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
- backAppearance.setBackButtonBackgroundImage(backButtonImage?.resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 32, bottom: 0, right: 0)), for: UIControl.State.normal, barMetrics: UIBarMetrics.default)
-
- }
- }
-
-
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
-
- override func pushViewController(_ viewController: UIViewController, animated: Bool) {
-
- if self.viewControllers.count > 0 {
- viewController.hidesBottomBarWhenPushed = true
- viewController.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItem.Style.plain, target: self, action: #selector(RootNavigationController.backAction ))
- }
- super.pushViewController(viewController, animated: animated)
- }
-
- @objc func backAction() {
-
- log.debug("当前控制器 \(self.topViewController))")
- // if self.topViewController == sbtup
-
- let detailVC = SBTDeviceDetaiVCtr()
- if self.topViewController == detailVC{
- if callback != nil{
- callback!()
- }
- }
- self.navigationController?.popViewController(animated: true)
- }
-
- func navBarShadowImage() -> UIImage? {
- UIGraphicsBeginImageContextWithOptions(CGSize(width: KSCREENWIDTH, height: 0.5), false, 0)
- //画线
- let path = UIBezierPath(rect: CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: 0.5))
- UIColor.white.setFill()//NavigationBar分割线颜色
- path.fill()
- let image = UIGraphicsGetImageFromCurrentImageContext()
- UIGraphicsEndImageContext()
- return image
- }
-
- }
|