如何使用 SWRevealViewController 防止标签栏隐藏?

Posted

技术标签:

【中文标题】如何使用 SWRevealViewController 防止标签栏隐藏?【英文标题】:How to prevent tabbar from hiding with SWRevealViewController? 【发布时间】:2013-10-24 09:26:50 【问题描述】:

我试图找出为什么我推送到导航堆栈的任何 ViewController 都没有显示标签栏。现在我有这样的结构: loginVC -> navigationController -> SWRevealVC --> (leftPanelVC 和第二个 segue 是 tabbarController,它有 4 个自己的视图控制器)。当我从这 4 个控制器中的任何一个推送视图控制器时,我失去了我的标签栏,我无法将它带回来。尝试过hidesBottomWhenPushed,但没有达到预期的效果。有人吗?

编辑: 我刚刚尝试的是设置这样的连接:登录-> tabbarcontroller-> 作为第一个子控制器我设置了 SWRevealViewController 并将其连接到前面的 navigationController 和后面的 tableController。不幸的是,它有点混乱,因为标签栏现在始终保持不变,即使在后控制器的顶部......我想要获得的外观是像 facebook 应用程序中的交互,其中标签栏始终可见,但作为前控制器的一部分,而不是覆盖在后面。

【问题讨论】:

【参考方案1】:

当我从这 4 个控制器中的任何一个推送视图控制器时,我失去了我的标签栏,我无法将它带回来。

我不确定你在这里做什么,但据我了解,你有:

    将标签栏控制器推到导航控制器上;

    从那个标签栏控制器,将一个新的视图控制器推送到导航控制器。

这是正确的,您的标签栏控制器标签栏“消失”是正常的,因为您将新的视图控制器(第 2 点)推送到导航控制器,这将替换标签栏控制器作为顶部导航控制器中的大多数控制器。

可能,您可以通过在标签栏控制器中嵌入导航控制器来获得您正在寻找的内容,但我没有足够的关于您的 UI 的信息来确保这是有意义的。

【讨论】:

据我所知,我应该做的是:swreveal --front--> tabbar --> tabbar 中嵌入单独导航控制器的任何子控制器? 您的意思是在标签栏内嵌入了一个新的导航控制器?这可能是一个解决方案,但它看起来像:swreveal --front--> tabbar --> 导航控制器-> 顶部控制器;因此,嵌入在标签栏中的每个控制器(或其中几个)都将是一个导航控制器,而您当前的标签栏控制器子级将是每个控制器中的顶部导航控制器...... 通常我想要实现的是让 TabbarController 作为具有 4 个标签栏项目的前视图控制器,但无论您选择哪个作为路径,您都应该看到标签栏。正是您在 iphone 上的 fb 应用程序中看到的内容。他们的标签栏始终可见 是的,所以你的 rootViewController 是标签栏控制器,然后你可以在标签栏控制器中嵌入导航控制器,如果你需要的话。

以上是关于如何使用 SWRevealViewController 防止标签栏隐藏?的主要内容,如果未能解决你的问题,请参考以下文章

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?