AppDelegate+Window.swift 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. //
  2. // AppDelegate+Window.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2018/6/30.
  6. // Copyright © 2018年 南鑫林. All rights reserved.
  7. //
  8. import UIKit
  9. import SwiftyMediator
  10. import Kingfisher
  11. extension AppDelegate {
  12. func initWindow(didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {
  13. window = UIWindow.init(frame: UIScreen.main.bounds)
  14. window?.backgroundColor = UIColor.white
  15. //版本更新
  16. _ = UpdateVersionManager.shared
  17. let vc = RootViewController()
  18. vc.launchOptions = launchOptions
  19. window?.rootViewController = vc
  20. window?.makeKeyAndVisible()
  21. //基础配置
  22. DispatchQueue.global(qos: .default).async {
  23. [weak self] in
  24. /// 设置全局的tabbar
  25. self?.setTabbarAppearence()
  26. /// 设置全局的navigation
  27. self?.setNavBarAppearence()
  28. /// 设置全局的TableView
  29. self?.setTableViewAppearance()
  30. /// 城市转换
  31. self?.setBaiduToCityFactory()
  32. /// 设置默认为快递
  33. let deliveryMethodTypeModel = DeliveryMethodTypeModel.shared()
  34. deliveryMethodTypeModel.deliveryMethodType = "2"
  35. DeliveryMethodTypeModel.shared().setModel(model: deliveryMethodTypeModel)
  36. //网络监听
  37. // AlamofireReachabilityManager.shared.reachability()
  38. //键盘处理
  39. IQKeyboardManagerSwiftManager.shared().initIQKeyboardManagerSwift()
  40. }
  41. }
  42. /// 设置Tabbar
  43. func setTabbarController() {
  44. /// 判断初始化页面
  45. if (UserModel.shared().getModel()?.token) != nil { //是否已经登录
  46. SwiftMoyaNetWorkServiceUser.shared().userRefreshApi {
  47. [weak self] _ in
  48. if(UserModel.shared().getModel()?.isFollowSuggestTopic == 0 || UserModel.shared().getModel()?.isFollowSuggestTopic == nil ) {//设置性别话题
  49. self?.setNoLoginOut()
  50. }else {
  51. self?.window?.rootViewController = BaseTabbarViewController.shared.tabBarViewController()
  52. self?.setData()
  53. }
  54. }
  55. }else {// 进入首页
  56. setNoLoginOut()
  57. }
  58. }
  59. /// 设置登录时用的数据
  60. func setData() {
  61. //U米
  62. UserMemberTotalBeanViewModel.shared.userMemberGetTotalBeanApiInterval()
  63. //获取消息的小红点
  64. MessageModuleManager.shared.userMemberMessageIndexApi()
  65. }
  66. /// 未登录
  67. func setNoLoginOut() {
  68. // 移除本地用户信息
  69. UserModel.shared().removeLoginModel()
  70. // 移除快递信息
  71. DeliveryMethodTypeModel.shared().removeLoginModel()
  72. // 设置tabBar
  73. self.window?.rootViewController = BaseTabbarViewController.shared.tabBarViewController()
  74. //添加登录view
  75. LoginNowView.initLoginNowView()
  76. }
  77. /// 退出登录
  78. func setLoginOut() {
  79. // 移除本地用户信息
  80. UserModel.shared().removeLoginModel()
  81. // 移除快递信息
  82. DeliveryMethodTypeModel.shared().removeLoginModel()
  83. // 选择中index
  84. BaseTabbarViewController.shared.setBadge()
  85. //添加登录view
  86. LoginNowView.initLoginNowView()
  87. // 退出登录
  88. NotificationCenter.default.post(name: NSNotification.Name("loginOut"), object: nil)
  89. BaseTabbarViewController.shared.setLoginOutTabBarItem()
  90. }
  91. /// 登录
  92. func setLogin() {
  93. Mediator.present(RegisterLoginRouterModuleType.presentRegisterLogin)
  94. }
  95. /// 设置全局的navigation
  96. func setNavBarAppearence() {
  97. WRNavigationBar.defaultStatusBarStyle = .default
  98. }
  99. ///设置全局的Tabbar
  100. func setTabbarAppearence() {
  101. UITabBar.appearance().isTranslucent = false
  102. UITabBar.appearance().backgroundImage = UIImage();
  103. UITabBar.appearance().backgroundColor = UIColor.white
  104. UITabBar.appearance().shadowImage = UIImage(named: "tab_top_line")
  105. }
  106. /// UITableView全局
  107. func setTableViewAppearance() {
  108. UITableView.appearance().estimatedRowHeight = 0
  109. UITableView.appearance().estimatedSectionHeaderHeight = 0
  110. UITableView.appearance().estimatedSectionFooterHeight = 0
  111. }
  112. ///设置百度city转
  113. func setBaiduToCityFactory() {
  114. BaiduToCityFactory.shared.setSaveBaiduToCity()
  115. }
  116. //设置引导页
  117. func setGuidePageView() {
  118. GuidePageView.guidePageView(images: ["guide_1","guide_2","guide_3","guide_4"])
  119. }
  120. }