【问题标题】:Is there another way than presentModalViewController to show a UITabBarController on just part of the screen?除了 presentModalViewController 之外,还有其他方法可以在屏幕的一部分上显示 UITabBarController 吗?
【发布时间】:2026-02-07 18:55:01
【问题描述】:

我有一个UITabBarController 在我的应用程序中显示许多设置屏幕。出于布局原因,我希望它们仅显示在屏幕的一部分上。在全屏模式下,列表变得不可读(太宽),每页只有几个控件使页面感觉很空,并且标签栏按钮远离内容(菲茨定律)。

使用presentModalViewControllerUIModalPresentationFormSheet 样式可以得到我想要的大小。我在空白背景上执行此操作,因为在我的情况下,在其后面显示任何内容没有意义。 “真正的”工作区以全屏模式显示另一个 presentModalViewController

这行得通,但感觉就像一个 hack。一个问题是,我无法使用UIModalTransitionStyleFlipHorizontal 样式使设置对话框后面的背景在过渡到全屏时移动。

TL;DR

我可以在另一个“背景”视图中嵌入UITabBarController 非全屏吗?我找不到任何有关如何执行此操作的信息。

【问题讨论】:

    标签: cocoa-touch ipad uitabbarcontroller presentmodalviewcontroller


    【解决方案1】:

    我可以在另一个“背景”视图中嵌入一个非全屏的 UITabBarController 吗?我找不到任何有关如何执行此操作的信息。

    你为什么不试试呢?

    1. 创建您希望标签栏控制器具有的大小的容器视图。
    2. 创建标签栏控制器。
    3. [containerView addSubview:tabBarController.view];

    【讨论】:

      最近更新 更多