Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何为中心选项卡栏项目Swift 4创建自定义操作_Ios_Swift_Uitabbarcontroller_Swift4 - Fatal编程技术网

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

Ios 如何为中心选项卡栏项目Swift 4创建自定义操作,ios,swift,uitabbarcontroller,swift4,Ios,Swift,Uitabbarcontroller,Swift4,我想为中心选项卡栏项创建自定义操作。我的代码是 import UIKit class ViewController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() let homeTabBarItem = generateNavController(vc: HomeViewController(), title: "Home&qu

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

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
    }

}
最初,我的选项卡栏看起来应该是常规的选项卡栏,但当按下中间的项目时,应该会像下面这样弹出屏幕(查看图像)

如果有人能帮我,我将不胜感激。
*很抱歉,如果帖子格式不正确,这是我第一次在stackoverflow上发帖。

基本上,整个想法是不可能的。此ActionViewController不能同时过两种不同的生活。它不能是一个普通的选项卡栏项目,也不能调用显示的视图控制器。我是否应该将其设置为UIButton,然后为该按钮指定一个操作?是的,这正是我所想的。