MoviaBox/Thimra/Base/Controller/SPTabBarController.swift
2025-04-24 11:14:21 +08:00

75 lines
2.5 KiB
Swift

//
// SPTabBarController.swift
// Thimra
//
// Created by on 2025/4/8.
//
import UIKit
class SPTabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .backgroundColor()
let nav1 = createNavigationController(viewController: SPHomeViewController(), title: "Home".localized, image: UIImage(named: "tabbar_icon_01"), selectedImage: UIImage(named: "tabbar_icon_01_selected"))
let nav2 = createNavigationController(viewController: SPExplorePageController(), title: "For You".localized, image: UIImage(named: "tabbar_icon_02"), selectedImage: UIImage(named: "tabbar_icon_02_selected"))
let nav4 = createNavigationController(viewController: SPMyListViewController(), title: "My list".localized, image: UIImage(named: "tabbar_icon_04"), selectedImage: UIImage(named: "tabbar_icon_04_selected"))
let nav5 = createNavigationController(viewController: SPMineViewController(), title: "Profile".localized, image: UIImage(named: "tabbar_icon_05"), selectedImage: UIImage(named: "tabbar_icon_05_selected"))
self.viewControllers = [nav1, nav2, nav4, nav5]
}
//MARK:-------------- --------------
override var childForStatusBarStyle: UIViewController? {
return self.selectedViewController
}
override var childForStatusBarHidden: UIViewController? {
return self.selectedViewController
}
}
extension SPTabBarController {
func onPlayHistory() {
// self.selectedIndex = 1
var index: Int?
var viewController: SPMyListViewController?
self.viewControllers?.enumerated().forEach({
guard let nav = $1 as? UINavigationController else { return }
if let vc = nav.viewControllers.first as? SPMyListViewController {
index = $0
viewController = vc
}
})
if let index = index {
self.selectedIndex = index
viewController?.pageView.selectedIndex = 1
}
}
}
extension SPTabBarController {
func createNavigationController(viewController: UIViewController, title: String?, image: UIImage?, selectedImage: UIImage?) -> UINavigationController {
let nav = SPNavigationController(rootViewController: viewController)
nav.tabBarItem.selectedImage = selectedImage
nav.tabBarItem.image = image
nav.tabBarItem.title = title
return nav
}
}