【问题标题】:Split view controller navigation bar question拆分视图控制器导航栏问题
【发布时间】:2021-09-30 15:29:19
【问题描述】:

背景:

我有一个 UISplitViewController 显示 UITabBarController 作为其详细视图 (.secondary)。 UITabBarController 显示嵌入在 UINavigationController 中的 UIViewController

情节变厚:

在 iPad 上(不是.compact),这很好用。显示UINavigationControllerUINavigationBar 是因为没有来自UISplitViewController 的推送segue,因为视图是.tiled

但是,在 iPhone(.compact 环境)上,这会带来问题。当showDetailViewController: 被调用时,UISplitViewController 会推送UITabBarController,这会导致UINavigationBar 出现 冗余,而UISplitViewController 的“返回”UIBarButtonItem UINavigationBar,然后在它的正下方是UINavigationControllerUINavigationBar

这是我尝试过的:

从层次结构中删除 UINavigationController 解决了 iPhone(或 .compact 环境)上的问题,但在 iPad 上引入了一个问题(不是 .compact):根本没有显示来自 UISplitViewControllerUINavigationBar .

对此有直接的解决方案/协议吗?我觉得好像这是一个很常见的情况,我不确定如何继续前进。

问题:

重申一下,目标是让一个 UINavigationBar 在 iPhone (.compact) 和 iPad(不是 .compact)上显示我的UISplitViewController 的详细视图 (.secondary)。

【问题讨论】:

    标签: ios swift uinavigationcontroller uitabbarcontroller uisplitviewcontroller


    【解决方案1】:

    对于面临类似问题的其他人(因为我在此站点上发现的任何类似问题都没有得到解答),解决方案是将 UITabBarController 嵌入到 UINavigationController 中。

    UISplitViewController 发现它正在推送UINavigationController,并合并UINavigationBars。在我原来的设置中,UITabBarController 充当了屏障,阻止了 UINavigationBars 合并。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多