MainTabBarController.swift 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //
  2. // MainTabBarController.swift
  3. // JSJP_Student_sw
  4. //
  5. // Created by Ning.ge on 2023/5/30.
  6. //
  7. import UIKit
  8. import ReactorKit
  9. import RxCocoa
  10. import RxSwift
  11. final class MainTabBarController: UITabBarController, View {
  12. // MARK: Constants
  13. fileprivate struct Metric {
  14. static let tabBarHeight = 50.f
  15. }
  16. // MARK: Properties
  17. var disposeBag = DisposeBag()
  18. // init(
  19. // reactor: MainTabBarViewReactor,
  20. // homeParentViewController:HomeParentViewController,
  21. // timekeepViewController:TimeKeepParentViewController,
  22. // mineListViewController:MineParentViewController
  23. // ) {
  24. // defer { self.reactor = reactor }
  25. // super.init(nibName: nil, bundle: nil)
  26. // self.viewControllers = [homeParentViewController,
  27. // timekeepViewController,
  28. // mineListViewController]
  29. // .map{ (viewController) -> UINavigationController in
  30. // let navigationController = MainNavigationController(rootViewController: viewController)
  31. //// navigationController.tabBarItem.imageInsets.top = 5
  32. //// navigationController.tabBarItem.imageInsets.bottom = 5
  33. // navigationController.tabBarItem.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: -3)
  34. // return navigationController
  35. // }
  36. // self.tabBar.barTintColor = .db_white
  37. // }
  38. required init?(coder aDecoder: NSCoder) {
  39. fatalError("init(coder:) has not been implemented")
  40. }
  41. // MARK: Configuring
  42. func bind(reactor: MainTabBarViewReactor) {
  43. self.rx.didSelect
  44. .scan((nil, nil)) { state, viewController in
  45. return (state.1, viewController)
  46. }.subscribe(onNext: { (fromVc,toVc) in
  47. // if fromVc == toVc || fromVc == nil {
  48. // TogetherDataManager.refreshDataForTab(toVc, true)
  49. // } else {
  50. // TogetherDataManager.refreshDataForTab(toVc, false)
  51. // }
  52. // if TogetherDataManager.homePageController(toVc) == nil {
  53. // TogetherDataManager.referenceDate = Date()
  54. // }
  55. }).disposed(by: disposeBag)
  56. }
  57. override func viewDidLayoutSubviews() {
  58. super.viewDidLayoutSubviews()
  59. self.tabBar.barTintColor = .db_tbbg
  60. if #available(iOS 11.0, *) {
  61. self.tabBar.height = Metric.tabBarHeight + self.view.safeAreaInsets.bottom
  62. } else {
  63. self.tabBar.height = Metric.tabBarHeight
  64. }
  65. self.tabBar.bottom = self.view.height
  66. }
  67. }