【发布时间】:2015-07-28 00:11:25
【问题描述】:
我的应用有一个顶级导航控制器。它像往常一样在不同页面之间导航并在顶部显示导航面板。其中一个页面是带有 3 个选项卡的选项卡控制器。每个选项卡都有自己的导航控制器,因为在选项卡中时,我需要打开一个在该选项卡内容之上推送的新页面(选项卡栏仍然可见)。我的问题:“内部”导航工作正常,推送页面等,但它无法“控制”屏幕顶部的导航面板。此面板仍在显示全局页面导航,而我想显示“内部”导航,如果内部没有历史记录,则显示全局导航。我所说的“显示导航”是指后退按钮。
理由:该应用在顶层有一个拆分视图控制器 - 它成为一个简单的导航控制器,用于紧凑的尺寸。它正在浏览不同的页面,其中一个页面是媒体播放器/选择器(如 iOS 内置的音乐应用程序)。媒体选择器是一个标签控制器,有 3 个标签用于过滤媒体,假设它就像音乐应用程序 - 歌曲、艺术家、专辑。当您切换到艺术家选项卡时,您可以看到艺术家表。单击其中一个将打开该艺术家的歌曲列表,就像在“音乐”应用中一样。新的过滤页面正常推送,但屏幕顶部的导航面板仍然显示全局导航。我想合并这两个导航,所以需要一种方法来在需要时接管这个面板的控制。似乎它忽略了嵌套导航的后退逻辑,或者我没有找到一个很好的方法来做到这一点。假设您应该将 iOS 音乐应用程序放在一个拆分视图(或导航)控制器中,它只是全局屏幕之一,但在过滤曲目时仍然需要一个很好的导航逻辑。
【问题讨论】:
-
您需要在适当的时候将外部导航控制器的
navigationBarHidden设置为YES
标签: ios uinavigationcontroller uitabbarcontroller uisplitviewcontroller