为了账号安全,请及时绑定邮箱和手机立即绑定

导航控制器内的选项卡条控制器,或共享导航根视图

/ 猿问

导航控制器内的选项卡条控制器,或共享导航根视图

炎炎设计 2019-07-19 15:01:19

导航控制器内的选项卡条控制器,或共享导航根视图

我正在尝试实现一个UI,结构类似于TwetieAPP,它的行为是这样的:顶层视图控制器似乎是一个导航控制器,其根视图是一个“Actions”表视图。如果您单击任何帐户,它将转到第二层,在底部有一个选项卡条。每个选项卡项显示不同的列表,并允许您进一步向下钻(随后的级别没有显示选项卡栏)。

因此,这似乎是实现层次结构:

  • UINavigationController

    • 推特/用户/等的详细视图
  1. 推特UITableViewController

  2. 答复UITableViewController

  3. ...

  1. 帐目UITableViewController

  2. UITabBarController

这似乎是可行的[^1],但根据sdk文档,它似乎不受支持。-pushViewController:animated:(强调后加):

视点控制器将视图控制器推送到堆栈上。它不能是选项卡条控制器的实例。

我想避免私有API等,但我不知道为什么这种使用是明确禁止的,即使它看起来很好。有人知道原因吗?

我考虑过将选项卡条控制器作为主控制器,每个选项卡包含单独的导航控制器。这方面的问题是每个nav控制器需要共享一个根视图控制器(即Twetie)-这似乎不起作用:将表控制器推到第二个导航控制器上,似乎从第一个导航控制器中移除了它。更不用说在选择一个不同的账户时,所有的记账工作都会很痛苦。

我应该如何正确地实现这一点?

[^1]:需要子类选项卡栏控制器,以便该级别的选项卡控制器的导航项与所选项卡的导航项保持同步,而单个选项卡的表控制器需要将各自的详细信息视图推送到self.tabBarController.navigationController而不是self.navigationController.


查看完整描述

3 回答

?
慕姐8265434

前面的两个答案是对的-我不用UITabBarController在推特上。写自定义很容易XXTabBarController(普通子类)UIViewController这是很高兴被推到导航控制器栈,但仍然生活在“视图控制器”的理念。帐户特定视图上的每个“选项卡”(Tweets/Replies/Messages)是它自己的视图控制器,就它们而言,它们在屏幕上被一个普通的程序交换。UITabBarController.


查看完整回答
反对 回复 2019-07-19
?
森栏

我正在构建一个应用程序,它使用与Tweetie类似的导航框架。我在我的博客上写了一篇关于如何做到这一点的文章www.wiredbob.com它还链接到源代码。它是一个完整的模板,您可以将其作为另一个项目的基础。祝好运!


查看完整回答
反对 回复 2019-07-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信