实现方式
创建首页MainController继承自UITabBarController就可以实现Tabbar效果。
实现效果
创建几个子控制器
创建子控制器 DiscoveryController,VideoController,MeController,FeedController,RoomController,继承自BaseLogicController;BaseLogicController封装 查看文章 IOS 11 通用Base控制器封装
//
// DiscoveryController.swift
// MyCloudMusic
//
// Created by jin on 2024/8/27.
//
import UIKit
class DiscoveryController: BaseLogicController {
}
其余自控制器实现同DiscoveryController。
创建MainController
MainController继承自UITabBarController
//
// MainController.swift
// 主界面
//
// Created by jin on 2024/8/20.
//
import UIKit
class MainController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
//选中高亮颜色
tabBar.tintColor = .primaryColor
tabBar.isTranslucent = true
//添加子控制器
addChildController(DiscoveryController(), R.string.localizable.discovery(), "Discovery")
addChildController(VideoController(), R.string.localizable.video(), "Video")
addChildController(MeController(), R.string.localizable.me(), "Me")
addChildController(FeedController(), R.string.localizable.feed(), "Feed")
addChildController(RoomController(), R.string.localizable.live(), "Live")
}
/// 添加子控制器
func addChildController(_ target:UIViewController,_ title:String,_ imageName:String) {
//标题
target.tabBarItem.title = title
//默认图片
target.tabBarItem.image = UIImage(named: imageName)
//选择后图片
target.tabBarItem.selectedImage = UIImage(named: "\(imageName)Selected")
//选择后文本颜色
target.tabBarItem.setBadgeTextAttributes([.foregroundColor:UIColor.colorPrimary], for: .selected)
addChild(target)
}
}
编译能够正常显示首页Tabbar效果。