gpt4 book ai didi

iphone - 导航 Controller 内的选项卡栏 Controller ,或共享导航 Root View

转载 作者:行者123 更新时间:2023-12-03 18:08:51 25 4
gpt4 key购买 nike

我正在尝试实现一个类似于 Tweetie 应用程序的 UI 结构,其行为如下:顶级 View Controller 似乎是一个导航 Controller ,其 Root View 是一个“Accounts” “ TableView 。如果您单击任何帐户,它将进入第二级,底部有一个选项卡栏。每个选项卡项目显示不同的列表,并让您进一步向下钻取(后续级别不显示选项卡栏)。

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

  • UINavigationController
    1. 帐户:UITableViewController
    2. UITabBarController
      1. 推文:UITableViewController
        • 推文/用户等的详细 View
      2. 回复:UITableViewController
      3. ...

这似乎有效[^1],但根据 -pushViewController:animated: 的 SDK 文档似乎不受支持(已添加强调):

viewController: The view controller that is pushed onto the stack. It cannot be an instance of tab bar controller.

我想避免使用私有(private) API 等,但我不确定为什么这种用法被明确禁止,即使它看起来工作正常。有谁知道原因吗?

我考虑过将选项卡栏 Controller 作为主 Controller ,每个选项卡都包含单独的导航 Controller 。这样做的问题是每个导航 Controller 需要共享一个 Root View Controller (即 Tweetie 中的“Accounts”表)——这似乎不起作用:将表 Controller 推送到第二个导航 Controller 似乎将其从第一个导航 Controller 中删除。更不用说选择不同帐户时的所有簿记可能会很痛苦。

我应该如何以正确的方式实现这一点?

[^1]:标签栏 Controller 需要进行子类化,以便该级别的标签栏 Controller 的导航项与所选选项卡的导航项保持同步,并且各个选项卡的表 Controller 需要推送各自的详细信息 View 到 self.tabBarController.navigationController 而不是 self.navigationController

最佳答案

前面的两个答案是正确的 - 我不在 Tweetie 中使用 UITabBarController。编写一个自定义的 XXTabBarController(UIViewController 的简单子(monad)类)非常容易,它很乐意被推送到导航 Controller 堆栈上,但仍然遵循“ View Controller ”哲学。帐户特定 View (Tweets/Replies/Messages)上的每个“选项卡”都是其自己的 View Controller ,并且就其而言担心它们会被普通的 UITabBarController 在屏幕上交换。

关于iphone - 导航 Controller 内的选项卡栏 Controller ,或共享导航 Root View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/576764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com