导航控制器内的选项卡条控制器,或共享导航根视图
我正在尝试实现一个UI,结构类似于TwetieAPP,它的行为是这样的:顶层视图控制器似乎是一个导航控制器,其根视图是一个“Actions”表视图。如果您单击任何帐户,它将转到第二层,在底部有一个选项卡条。每个选项卡项显示不同的列表,并允许您进一步向下钻(随后的级别没有显示选项卡栏)。
因此,这似乎是实现层次结构:
UINavigationController
推特: UITableViewController
答复: UITableViewController
...
帐目: UITableViewController
UITabBarController
这似乎是可行的[^1],但根据sdk文档,它似乎不受支持。-pushViewController:animated:
(强调后加):
视点控制器将视图控制器推送到堆栈上。它不能是选项卡条控制器的实例。
我想避免私有API等,但我不知道为什么这种使用是明确禁止的,即使它看起来很好。有人知道原因吗?
我考虑过将选项卡条控制器作为主控制器,每个选项卡包含单独的导航控制器。这方面的问题是每个nav控制器需要共享一个根视图控制器(即Twetie)-这似乎不起作用:将表控制器推到第二个导航控制器上,似乎从第一个导航控制器中移除了它。更不用说在选择一个不同的账户时,所有的记账工作都会很痛苦。
我应该如何正确地实现这一点?
[^1]:需要子类选项卡栏控制器,以便该级别的选项卡控制器的导航项与所选项卡的导航项保持同步,而单个选项卡的表控制器需要将各自的详细信息视图推送到self.tabBarController.navigationController
而不是self.navigationController
.