如何为中心选项卡栏项目创建自定义动作Swift 4

问题描述

我想为中心选项卡栏项创建自定义操作。我的代码

import UIKit

class ViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let hoMetabBarItem = generateNavController(vc: HomeViewController(),title: "Home",image:#imageLiteral(resourceName: "address_book"))
        let workOrderTabBarItem = generateNavController(vc: SecondViewController(),title: "Work Order",image: #imageLiteral(resourceName: "address_book") )
        let actionItemTabBarItem = generateNavController(vc: ActionViewController(),title:"",image: #imageLiteral(resourceName: "address_book") )
        let requestTabBarItem = generateNavController(vc: ThirdViewController(),title: "Request",image: #imageLiteral(resourceName: "address_book") )
        let settingsTabBarItem =  generateNavController(vc: FourthViewController(),title: "Settings",image: #imageLiteral(resourceName: "address_book"))

        UINavigationBar.appearance().prefersLargeTitles = true

        viewControllers = [hoMetabBarItem,workOrderTabBarItem,actionItemTabBarItem,requestTabBarItem,settingsTabBarItem]
        }
    
    fileprivate func generateNavController(vc: UIViewController,title: String,image: UIImage) -> UINavigationController {
        vc.navigationItem.title = title
        let navController = UINavigationController(rootViewController: vc)
        navController.title = title
        navController.tabBarItem.image = image
        return navController
    }
    func tabBarController(_ tabBarController: UITabBarController,shouldSelect viewController: UIViewController) -> Bool {
        if viewController.isKind(of: ActionViewController.self) {
            let vc =  ActionViewController()
            vc.modalPresentationStyle = .overFullScreen
            self.present(vc,animated: true,completion: nil)
            return false
        }
        return true
    }

}

最初,我的tabBar应该看起来像常规的tabBar,但是当按下中间项目时,应该会弹出这样的屏幕(查看下面的图片
PopUp Screen

我几乎要完成这项任务了,如果有人可以帮助我,我将不胜感激。 *很抱歉,如果帖子格式不正确,这是我第一次在stackoverflow上发布帖子。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)