我正在尝试实现类似于Tweetie应用程序的UI ,其行为如下:顶级视图控制器似乎是导航控制器,其根视图是"帐户"表视图.如果您点击任何帐户,它将转到第二级,其底部有一个标签栏.每个选项卡项显示不同的列表,并允许您进一步向下钻取(后续级别不显示选项卡栏).
所以,这似乎是实现层次结构:
UINavigationController
UITableViewControllerUITabBarController
UITableViewController
UITableViewController这似乎有效[^ 1],但根据SDK文档-pushViewController:animated:(强调添加)似乎不支持:
viewController:推入堆栈的视图控制器.它不能是标签栏控制器的实例.
我想避免私有API等,但我不确定为什么这种用法被明确禁止,即使它似乎工作正常.谁知道原因?
我已经考虑过将标签栏控制器作为主控制器,每个标签都包含单独的导航控制器.这个问题是每个导航控制器需要共享一个根视图控制器(即Tweetie中的"帐户"表) - 这似乎不起作用:将表控制器推送到第二个导航控制器似乎将其删除从第一个.更不用说选择不同帐户时所有的簿记可能会很痛苦.
我该如何以正确的方式实现这一目标?
[^ 1]:标签栏控制器需要进行子类化,以便该级别的标签栏控制器导航项与所选标签的导航项保持同步,并且单个标签的表控制器需要将其各自的详细视图推送到self.tabBarController.navigationController而不是self.navigationController.