UINavigationController 包含一个 UITableView,然后是一个包含更多 UITableView 的 UITabBarController
Posted
技术标签:
【中文标题】UINavigationController 包含一个 UITableView,然后是一个包含更多 UITableView 的 UITabBarController【英文标题】:UINavigationController containing a UITableView, then a UITabBarController with more UITableView's 【发布时间】:2012-01-11 20:15:50 【问题描述】:抱歉标题含糊!
我正在尝试实现以下功能:首先向用户呈现包含 UITableView 的 UINavigationController。当用户点击表格视图中的单元格时,我想推送一个新视图,其中包含一个 UITabBarController(无论当前可见的 UIViewController如何都将保持可见)和一个 UITableView,人们可以再次从中选择一个单元格,然后将其再次推送到 UINavigationController。
如果用户从 UITabBar 中选择一个标签,我希望第一个屏幕(没有 UITabBar)是用户可以返回的屏幕,而不是他们刚刚来自的标签。此外,如果用户在任何选项卡上选择 UITableView 项目之一,我希望后退按钮返回到先前显示的屏幕(正如您对标准 UINavigationController 所期望的那样)
我已经花了几个小时试图找到这个问题的答案,但我无处可去!我希望我的解释没有过于模糊或混乱。
詹姆斯。
【问题讨论】:
【参考方案1】:如果您想要的 UX 在这里无法解释,请想象一下您的用户会有什么感受!我会重新考虑预期的设计。
来自视图控制器编程指南:
使用标签栏控制器的应用程序也可以使用导航 一个或多个选项卡中的控制器。当结合这两种类型的 同一用户界面中的视图控制器,标签栏控制器 始终充当导航控制器的包装器。你永远不 想要将标签栏控制器推送到导航堆栈上 导航控制器。这样做会造成一种不寻常的情况,即 标签栏仅在特定视图控制器位于 导航堆栈的顶部。标签栏被设计为持久的, 因此,这种临时方法可能会让用户感到困惑。
也就是说,您可能可以破解您正在谈论的内容,但您需要编写一堆代码来使用 UITabBarControllerDelegate
和 UINavigationControllerDelegate
方法处理导航并跟踪您的任何状态需要根据用户操作知道要导航到的位置。很可能你最终会遇到一些复杂的代码、维护,甚至更糟的是,使用。
【讨论】:
谢谢。我最终更改了视图,因此 UITabBar 始终处于显示状态,而我所说的第一个屏幕在用户首次启动应用程序时显示为模态视图(它是选择一个购物篮供用户使用在其他视图中)以上是关于UINavigationController 包含一个 UITableView,然后是一个包含更多 UITableView 的 UITabBarController的主要内容,如果未能解决你的问题,请参考以下文章
包含 UINavigationController 的状态栏大小不正确
UINavigationController 包含一个 UITableView,然后是一个包含更多 UITableView 的 UITabBarController
UINavigationController 包含、iOS7 和状态栏。漏洞?