【问题标题】:How to push UIViewController in UITabBarController如何在 UITabBarController 中推送 UIViewController
【发布时间】:2013-05-17 05:47:15
【问题描述】:

我想从UITabBarControler 推送一个视图。我的应用层次结构如下所示:

UINavigationController -> UIView -> UITabBarController

我有一个带有 3 个标签的 UITabBarController。在第一个选项卡上,我添加了 UITableView。如何在不从选项卡控件导航的情况下将表格中单元格的选择推送到另一个视图?

【问题讨论】:

  • 您是指从标签栏内的 tableview 推送详细视图吗?
  • 没错,但标签栏已经在导航控制中。

标签: iphone objective-c


【解决方案1】:

你的问题是你正在做的安排。

您正在使用UINavigationController -> UIView -> UITabBarController,因此UITabBarControllerUINavigationController 的子视图。当您导航时,您弹出的视图来自导航控制器,因此其所有内容(包括UITabBarController)都会消失。

你的结构需要是这样的:

UITabBarController -> UINavigationController -> UIView,这意味着每个需要它的标签都有一个UINavigationController

例如,如果你需要在两个选项卡中使用 push,结构应该是这样的:

UITabBarController

|  --> UINavigationController 1 --> UIView 1 --> (push segue) --> UIView 1B

|  --> UINavigationController 2 --> UIView 2 --> (push segue) --> UIView 2B

【讨论】:

    【解决方案2】:

    如果你真的想在标签栏界面里面有一个导航控制器类型的推送,你需要一个导航界面inside标签栏界面。

    不过,您最简单的解决方案可能是重新考虑您的界面。

    【讨论】:

    • 任何教程或部分代码,使用该代码我可以完成我的工作
    【解决方案3】:

    像这样:

    How to handle UINavigationControllers and UITabBarControllers iOS 6.1

    这是一个更复杂的版本,但是看看 Tab Bar Controller 和它与包含的 viewControllers 的关系。

    基本上,您不希望您的 tabBarController 嵌入到该导航控制器中。相反,每个包含的想要推送的 viewController 都应该嵌入到它自己的 Nav Controller 中。所以在你的情况下,你至少会为你的第一个选项卡的 tableViewController 这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多