3

看起来这应该很容易弄清楚,但是今天下午我没有运气。我把我的问题的这个快速、简化的故事板模型拼凑在一起。

基本上,我希望下面的表格视图控制器也位于标签栏控制器中(除了已经存在的导航控制器)。选项卡将在两个表视图控制器之间切换。

现在,带有按钮的视图控制器充当一种菜单。每个按钮都指向一个表格视图控制器。理想情况下,此视图控制器不会显示标签栏,并且只能从表格视图控制器的导航栏上的后退按钮访问。

我尝试了几种不同的嵌入到 tabbarcontrollers 的方法,但它们都没有产生预期的结果:

-我尝试选择两个表视图控制器并将它们嵌入选项卡视图控制器中。标签栏没有出现在模拟器中,并且出现“无法到达的场景”警告。

-我尝试将初始导航控制器嵌入到 tabbarcontroller 中。这将为第一个“菜单”页面创建一个选项卡条目。一旦我将表格视图连接到选项卡视图,它也会导致推送问题。

我会很好地在故事板之上实现一些编程选项,我只是为这个项目选择了故事板,因为它是一个相对简单的数据表示。

解决这个问题的正确方法是什么?谢谢!

故事板截图

4

2 回答 2

9

标签栏控制器需要成为视图层次结构的根视图控制器。将标签栏控制器放在任何其他类型的容器控制器内,这违反了 HIG 和 Apple 的标准。

来自苹果文档:

部署选项卡栏界面时,您必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面永远不应安装为另一个视图控制器的子级。

所以,这里的底线是你需要重新考虑你的设计。一种选择是将 s 设置UITabBarController为窗口的根视图,然后将每个UITableViewControllers 放在 a 中,aUINavigationController放在UITabBarController. 通过这种方式,您仍然可以获得导航栏,并遵守 Apple 的设计指南(您也不会收到那些讨厌的警告,如果您尝试将 a 安装UITabBarController为根视图以外的任何内容,Apple 现在甚至可能会抛出异常窗口)。

于 2013-01-09T23:38:01.083 回答
0

我接受 JMStone 的回答,但我们可能会遇到需要将标签栏控制器放在其他控制器中的情况,尤其是表视图控制器。

请参考Storyboard 导航控制器和标签栏控制器

还有 Matthjin 的好例子:http: //cl.ly/VQLa

希望它能帮助一些想要将标签栏控制器放在表格视图控制器中并想要正确导航的人。

于 2014-07-22T08:56:10.993 回答