MainTabBarController.swift 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. if #available(iOS 11.0, *) {
  60. self.tabBar.height = Metric.tabBarHeight + self.view.safeAreaInsets.bottom
  61. } else {
  62. self.tabBar.height = Metric.tabBarHeight
  63. }
  64. self.tabBar.bottom = self.view.height
  65. }
  66. }