首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭UITabController中的视图控制器

关闭UITabController中的视图控制器
EN

Stack Overflow用户
提问于 2017-02-27 08:51:51
回答 1查看 294关注 0票数 0

我有一个项目,其中包含一个选项卡控制器,作为主‘页面’。

我想添加一个UITabBar按钮项,它以模态的方式呈现一个视图控制器,并在该视图控制器中添加一个取消该视图控制器并返回到上一个选项卡选择的取消按钮。

要澄清的是,这是iOS的Medium应用程序使用的东西,当你点击create帖子项目时,它会以模态的方式显示它,并在你想要的时候关闭它。

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

希望我把话说明白了。

示例:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 09:28:17

所以我已经成功地解决了这个问题,希望这个答案能在未来对某些人有所帮助。

首先,在我加载的第一个视图控制器上,假设我的'Home‘视图控制器将tabBarController委托设置为我的AppDelegate.swift文件(这是我的个人偏好),如下所示:

代码语言:javascript
复制
self.tabBarController?.delegate = UIApplication.shared.delegate as? UITabBarControllerDelegate

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

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

然后编辑该函数以与我的特定视图控制器交互。

函数的最终版本:

代码语言:javascript
复制
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

;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42476170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档