从视图控制器中删除选项卡栏控制器

Remove tab bar controller from view controller

我有一个连接到我的标签栏控制器的视图控制器。这个视图控制器也有一个到弹出视图控制器的 segue 连接。如下图所示。

问题是标签栏被放置在我的弹出视图控制器的前面,如下所示。

我不希望它是可点击的,因为当您按下标签栏上的项目时会发生一些奇怪的行为。那么有没有办法将它发送到后面或隐藏这个标签栏控制器?

值得注意的是,在这个视图控制器的 class 中没有这个标签栏控制器的 IBOutlet,所以我无法在这个视图中访问它。

从弹出窗口或警报仅部分覆盖背景(或父)视图控制器的视图控制器中删除选项卡栏控制器可能会使用户感到困惑或看起来很奇怪。

如果您可以通过 IBOutlet 访问您的标签栏控制器,您可以通过将 .userInteractionEnabled 设置为 false 并将其 alpha 设置为 0.7 或 0.6 来禁用对它的触摸,给出印象是它在弹出窗口出现时被暂时禁用。

如果您无权访问您的标签栏控制器(我刚刚注意到您问题最后一句话中的评论),您还可以在 class 中注册一个通知观察器 确实保持标签栏控制器出口,你可以发送自定义事件(你定义的)像“popupViewAppeared”和“popupViewDisappeared”到enable/disable标签栏控制器。