// // MainViewController.swift // // // Created by shishir sapkota // import Foundation import UIKit class MainViewController: UITabBarController { // MARK: Properties // MARK: ENUMS: private enum Items: Int { case home = 0 case sendMoney case branch case profile } var presenter: MainModuleInterface? // MARK: VC's Life cycle override func viewDidLoad() { super.viewDidLoad() self.delegate = self self.setupAppearance() } func setup(viewControllers: [UIViewController]) { self.viewControllers = viewControllers self.setupTab() setupTabItem() } // MARK: Other functions func setupAppearance() { UINavigationBar.setInsideAppearance() } private func setupTab() { // self.tabBar.barTintColor = Colors.TabBar.barTint self.tabBar.tintColor = Colors.defaultRed self.tabBar.isTranslucent = false self.tabBar.shadowImage = Colors.TabBar.shadow.image() self.tabBar.backgroundImage = UIImage() } override func setupTabItem() { self.viewControllers?.forEach({ (viewController) in }) } } extension MainViewController: MainViewInterface { } extension MainViewController: UITabBarControllerDelegate { func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { if let nav = viewController as? UINavigationController { if let _ = nav.viewControllers.first as? RecipientListViewController { NotificationCenter.default.post(name: Notification.Name.init(AppConstants.MainWireFrameNotificationName), object: nil, userInfo: nil) return Utility.isVerifiedUser() } } print(tabBarController.selectedIndex) return true } } //0xec1c24 extension UINavigationBar { static func setInsideAppearance() { let navBarAppearance = UINavigationBar.appearance() navBarAppearance.isTranslucent = false navBarAppearance.barTintColor = UIColor.white } static func setOutsideAppearance() { self.setInsideAppearance() let navBarAppearance = UINavigationBar.appearance() navBarAppearance.barTintColor = Colors.defaultRed let font = Fonts.NavBar.titleFont navBarAppearance.titleTextAttributes = [ NSAttributedStringKey.foregroundColor: UIColor.black, NSAttributedStringKey.font: font] navBarAppearance.tintColor = UIColor.black } static func setupImageAppearance() { let navBarAppearance = UINavigationBar.appearance() navBarAppearance.barTintColor = Colors.defaultRed let font = Fonts.NavBar.titleFont navBarAppearance.titleTextAttributes = [ NSAttributedStringKey.foregroundColor: UIColor.black, NSAttributedStringKey.font: font] navBarAppearance.tintColor = UIColor.black } } @objc protocol Setup { @objc optional func setupTabItem() } extension UIViewController: Setup { func setupTabItem() { } } struct Colors { static let separator = UIColor(hex: "#eeeeee") static let defaultRed = UIColor(hex: "#0xec1c24") static let cartBadge = UIColor(hex: "#F5951D") struct TabBar { static let textItemSelected = Colors.defaultRed static let textItemNotSelected = UIColor(hex: "#959595") static let shadow = Colors.separator } struct NavBar { // static let barTint = static let tint = UIColor.white static let shadow = Colors.separator } struct XLTabBar { static let titleUnselected = UIColor(hex: "#555555") static let titleSelected = Colors.defaultRed static let selectedBackground = Colors.defaultRed } } struct Fonts { struct Family { static let regular = "SanFranciscoDisplay-regular" static let light = "SanFranciscoDisplay-light" static let bold = "SanFranciscoDisplay-Bold" static let semiBold = "SanFranciscoDisplay-Semibold" } struct TabBar { static let itemFont = UIFont(name: Family.light, size: 10)! } struct NavBar { static let titleFont = UIFont(name: Family.regular, size: 17)! } struct XLTabBar { static let itemFont = UIFont(name: Family.regular, size: 12)! } struct Error { static let font = UIFont(name: Family.semiBold, size: 11)! } } extension UIColor { func image(of size: CGSize = CGSize(width: 1, height: 1)) -> UIImage { let rect = CGRect(origin: .zero, size: size) UIGraphicsBeginImageContextWithOptions(size, false, 0) self.setFill() UIRectFill(rect) let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()! UIGraphicsEndImageContext() return image } }