【问题标题】:prepareForSegue for NavigationController in ViewController from stack堆栈中 ViewController 中 NavigationController 的 prepareForSegue
【发布时间】:2015-09-29 13:58:51
【问题描述】:

我在两个导航控制器之间有一个转场:

如何在 NavigationControllers ViewController-stack 中的一个 ViewControllers 中“捕捉”prepareForSegue 中的 segue?

【问题讨论】:

  • “抓住”转场是什么意思?
  • prepareForSegue 在我执行 navigationController.performSegue 时不会在 ViewController 中调用
  • 你到底想达到什么目的?导航控制器不应推送另一个导航控制器。或者你正在使用关系segues?他们是彼此的根视图控制器?这是什么?!
  • 我想要两个独立的 NavigationControllers,两个 NavigationControllers 都应该能够显示另一个 NavigationController 的新实例,并带有显示模式的 segue。这可能不是一个好方法。

标签: ios swift segue navigationcontroller


【解决方案1】:

导航控制器不充当传统的视图控制器。

我将如何实现您的要求如下,但我首先要问您: 为什么会有两个相互链接的导航控制器?

这是一种非常非传统的导航控制器用法。导航控制器只是控制您的导航堆栈。他们不向用户提供任何信息。我的猜测是,如果我们查看您要完成的任务,此设置将不是您的最佳选择。

也就是说,如果您绝对必须按照上面所说的方式完成某件事,那么您可以这样做:

  1. 如果您想使用“prepareForSegue”,我会在两个导航控制器中间添加一个 ViewController。
  2. 然后我会将 ViewController 的 alpha 值调低到 0.0
  3. 在“viewDidLoad”中,我会将用于连接到“NavigationController”的逻辑添加到任何一个“NavigationController”中,这样​​当您从一个导航控制器进行连接时,它会点击 ViewController 并立即连接到下一个导航控制器。将 alpha 值调低至 0.0 意味着您将看不到 viewController(理论上,取决于您的导航堆栈)。
  4. 然后我将我的设置添加到 ViewController 中的“prepareForSegue”

【讨论】:

  • 不确定这是否回答了您的问题@lordvermillion,但如果有,请您接受吗?或者让我知道您还需要什么
猜你喜欢
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
相关资源
最近更新 更多