以UITabBarController作为根视图,UINavigationController作为其子视图控制器,合理运用scannerViewController.hidesBottomBarWhenPushed = true,实现结合运用。没什么技术含量,作为记录吧。
分别设置好三个tabbaritem后,对原本的基础代码进行更改
class UITabbarVC: UITabBarController, UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let firstViewController = FirstViewController()
let secondViewController = SecondViewController()
let thirdViewController = AIViewController()
let firstNavigationController = UINavigationController(rootViewController: firstViewController) //加入代码
firstNavigationController.tabBarItem.image = UIImage(systemName: "arrow.3.trianglepath")
firstNavigationController.title = "扫描"
secondViewController.tabBarItem.image = UIImage(systemName: "book")
secondViewController.title = "学习"
thirdViewController.tabBarItem.image = UIImage(systemName: "ellipsis.message")
thirdViewController.title = "AI"
self.viewControllers = [firstNavigationController,secondViewController,thirdViewController] //相应变化
self.selectedIndex = 0
UITabBar.appearance().isHidden = false
}
}
后对FirstViewController进行设置,实现点击跳转的功能
class FirstViewController: UIViewController {
lazy var ToScannerButton:UIButton = {
let button = UIButton(type:.system)
button.setTitle("扫描", for:.normal)
button.addTarget(self, action: #selector(buttonTapped), for:.touchUpInside)
button.backgroundColor = UIColor.green
button.frame = CGRect(x: 100, y: 100, width: 200, height: 50)
return button
}()
func setupView(){
self.view.addSubview(ToScannerButton)
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
setupView()
self.view.clipsToBounds = false
self.view.isUserInteractionEnabled = true
UITabBar.appearance().isHidden = false
}
@objc func buttonTapped() {
print("被点击")
let scannerViewController = ScannerViewController()
scannerViewController.hidesBottomBarWhenPushed = true //实现对tabbarcontroller的隐藏
navigationController?.pushViewController(scannerViewController, animated: true)
}
}
最后实现页面跳转。