【问题标题】:Navigation Controller with TableView带有 TableView 的导航控制器
【发布时间】:2017-12-26 22:46:26
【问题描述】:

我有一个 UIView,它嵌入在 NavigationController 中。当用户点击TableView 中的一个单元格时,他会被带到UIView。但是,UIView 从底部弹出,而不是从右侧滑出。我将 segue 设置为 Show,所以我不确定它为什么这样做。

【问题讨论】:

  • TableView 控制器嵌入到 Navigation Controller 中了吗?
  • 它嵌入在不同的导航控制器中。
  • 这就是它不起作用的原因。
  • 对不起。我是新手。能详细解释一下吗?
  • 在后退按钮上请弹出导航控制器... self.navigationController?.popViewController(animated: true)

标签: ios swift uitableview uinavigationcontroller segue


【解决方案1】:

仅当所有子导航控制器都是相同 UINavigationController 的子级时,从侧面滑入的行为才有效。此要求包括“根”或第一个子项。在您的情况下,根子节点是 UITableViewController。

它在 Storyboard 中看起来像这样:

UINavVC ---> RootChildVC ---> SecondChildVC ---> ThirdChildVC 等

show segue 是上下文相关的。如果是如上图,则为横滑。

在任何其他情况下,包括两个任意 VC 之间的手绘转场,show 被解释为从底部进入的 模态演示向下滑动。您也不会自动安装“返回”按钮,因为没有检测到“导航”关系。

您可能感到困惑,需要将您的故事板重新制作成上述简单的习语。如果您在“表亲”(即其直接父母是 不同 UINavigationControllers 的 VC 之间进行争论,那么他们属于“任何其他情况”。

【讨论】:

    【解决方案2】:

    不应将导航控制器嵌入到另一个导航控制器中。
    删除 View 和 NavigationController 之间的根视图关系,删除 NavigationController 并将 TableView 中的“显示”segue 直接设置为该视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-03
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 2015-03-31
      相关资源
      最近更新 更多