You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

188 lines
4.9 KiB

//
// 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
}
}