在选项卡上的选项卡上以模态显示

时间:2018-12-01 15:56:53

标签: ios swift uitabbarcontroller

我试图在我的标签栏中添加一个新的标签栏项目,点击该项目时,与其连接的ViewController应该以全屏模式显示。

我已经将所需的VC作为根连接到了选项卡(为了使其显示在选项卡中)。

我尝试了以下代码,但是VC显示为选项卡视图控制器的正常行为。

如何使其改为全屏显示?

class tabBarViewController: UITabBarController, UITabBarControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.tabBarController?.delegate = self
    }

    func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
            let isModalView = viewController is dreamteamViewController

            if isModalView {
                // you can refactor this part of the code
                let cameraController = UINavigationController(rootViewController: dreamteamViewController())
                self.present(cameraController, animated: true, completion: nil)

                return false
            } else {
                return true
            }
        }

1 个答案:

答案 0 :(得分:0)

  1. 像这样更改viewDidLoad,以将委托回调设置为正确的实例:

    覆盖func viewDidLoad(){     super.viewDidLoad()     self.delegate =自我 }

  2. 在故事板上为所需的视图控制器定义和故事板标识符

  3. 更改您的shouldSelect方法,如下所示:

    func tabBarController(_ tabBarController:UITabBarController,shouldSelect viewController:UIViewController)->布尔 {         让isModalView = viewController是DesiredViewController

        if isModalView {
            // you can refactor this part of the code
            let mainStory = UIStoryboard(
                name: "Main", bundle: nil
            )
            let desiredVC = mainStory.instantiateViewController(
                    withIdentifier:"YourIdentifier"
                ) as UIViewController
    
            let navBar = UINavigationController.init(rootViewController: desiredVC)
    
    
            self.present(navBar, animated: true, completion: nil)
    
            return false
        } else {
            return true
        }
    }
    

我在github上发布了一个项目,该项目以模态形式显示了一个选项卡项。如果有任何不清楚的地方,请从https://github.com/Hbehboodi/Navigation-TabbarWithModalTabItem进行检查。