在UITabController中关闭View Controller

时间:2017-02-27 00:51:51

标签: ios swift3 uitabbarcontroller

我有一个包含标签控制器的项目,作为主要的“页面”。

我想添加一个UITabBar按钮项,它提供一个视图控制器modaly,并在该视图控制器中添加一个dismiss按钮,该按钮取消该视图控制器并返回上一个选项卡选择。

为了澄清,它是适用于iOS的Medium应用程序,当您单击创建帖子项目时,它会模拟显示它并在您想要时将其解除。

我可以呈现视图控制器,但我不能忽略它。

希望我能让自己理解。

实施例: Pressing the middle button

1 个答案:

答案 0 :(得分:0)

所以我设法按照我的意愿解决了这个问题,希望答案能帮助将来有人。

首先,我设置了我的第一个加载的视图控制器,让我说出我的主页'查看控制器tabBarController委托是我的AppDelegate.swift文件(这是个人偏好),如:

self.tabBarController?.delegate = UIApplication.shared.delegate as? UITabBarControllerDelegate

然后在我的AppDelegate.swift文件中,我将代理UITabBarControllerDelegate添加到类属性中,以便我可以访问tabBarController委托函数,例如

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {}

然后编辑该功能以与我的特定视图控制器进行交互。

该功能的最终版本:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
    if viewController is ViewControllerToPresentModaly {
        if let newVC = tabBarController.storyboard?.instantiateViewController(withIdentifier: "modalVC") {
            tabBarController.present(newVC, animated: true)
            return false
        }
    }

    return true
}

此处,如果您需要常规标签行为,return true或您自己的return false