UITabBarController中隐藏的UINavigationController

ada*_*dam 3 cocoa cocoa-touch ios

我有一个应用程序,UIViewController每个应用程序内部相应的5 秒UINavigationController,所有内容都隐藏在UITabBarController屏幕底部的5个选项卡中.

我想在按下对话框按钮时显示另一个UIViewController(在a内UINavigationController).

只能以编程方式加载和卸载此视图; 即它不应出现在标签栏中.但是,我希望标签栏始终可见.

如果我加入[UINavigationController view][self window]UITabBar被覆盖.如果我将它添加到任何其他图层,UINavigationController它对状态栏的补偿添加因此比预期更低.

一个解决方案是将第六个UINavigationController添加到UITabBar其他人,但tabBarItem隐藏它.然后我可以使用tabBars selectedIndex属性显示它并隐藏它.

tabBarItem通过UIViewController节目访问没有明显的方法这样做.


@wisequark,我认为你完全误解了,你几乎重写了我的应用程序的架构.但是我为每个视图都有一个单独的导航控制器,因为它们是相互排斥的,并且没有"向下钻取"的概念.

@Kendall,这是我期望我将要做的事情 - 让模态视图出现一个隐藏按钮以恢复正常界面.但是保持标签栏始终可见是很好的,所以我只是想知道是否有人知道某种方式.

wis*_*ark 15

听起来好像你手上有一团糟.A UINavigationController是一个与a非常不同的独特对象UITabBarController.一般情况下,您的应用程序应该有一个选项卡控制器,其中一个选项卡加载了一个UINavigationController,然后加载它的视图 - 而不是两者都维护不同视图的管理.引用a的显示也是不合适的,UIViewController因为这样的对象没有可视化表示.在a的情况下UINavigationController,导航控制器对象负责显示导航栏和表视图(在最常见的情况下)并且用于管理导航层次结构中的所有视图的显示.它本身在屏幕上没有相应的表示.同样,aUITabBarController提供一个标签栏,负责加载和卸载附加到标签按钮的视图和/或视图控制器.如果我们将此作为图像呈现,它将看起来像这样 - 替代文本http://img.skitch.com/20081112-2sqp7q4wafa34te1ga337u4k8.png