问题标签 [unwind-segue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
256 浏览

objective-c - 展开或关闭视图控制器不起作用。Xcode 6.4

一旦发生确认操作,我一直试图让我的推送视图控制器关闭或返回。我在 stackoverflow 中阅读了有关此主题的许多帖子(我以前从未这样做过),例如: 如何以编程方式执行 Unwind segue?

但有相当多的问题。首先,从视图控制器到退出的 ctrl 拖动虽然这似乎是 Xcode 6 中的一个错误,但不起作用,所以我按照建议添加了以下解决方法并来回更改了类:

这允许我添加从我的操作按钮到退出的转场。我当然也给了它一个标识符(unwindSegue)。

然后我在按钮代码中添加了performWithSegueWithIdentifier 行,如下所示:

然而,我的放松仍未开始。

也许这仍然是一个问题xcode 6.4,因为我需要使用不同的解决方法?

无论如何,这方面的任何帮助都会很棒

谢谢

0 投票
0 回答
331 浏览

ios - Unwind Segue 中的 PopViewController

我有一个像下面这样的导航。

--initial-->导航控制器--root-->firstViewController--push-->secondViewController--modal-->导航控制器--root-->thirdViewController。

在此处输入图像描述

我正试图从thirdViewController 放松到SecondViewController。然后在某些情况下在 unwind 函数中弹出 To FirstViewController。

但它已经崩溃了。

我可以通过在运行时找到导航控制器来解决问题,但这不是动态解决方案。我试图理解展开逻辑。

我错过了放松赛格或其他什么吗?

0 投票
1 回答
594 浏览

ios - iOS - 放松到我的初始视图控制器

我正在使用展开 segue 展开到故事板中的初始视图控制器。展开效果很好,我在初始视图控制器中实现了这个方法:

但是,如果我在展开后尝试转到另一个视图控制器,则会收到以下错误:

警告:尝试呈现不在窗口层次结构中的视图!

似乎只有当我展开到情节提要中被检查为“初始视图控制器”的视图控制器时才会发生这种情况。这是一个错误吗?我应该能够放松到那个初始控制器吗?其他想法?

编辑:

这是我执行第二次转场的方式:

我应该注意到这是一个登录/注销问题。当我第一次登录时,从我的登录控制器到我的下一个控制器的 segue 工作。当我注销时,我会放松到初始视图控制器。然后我再次登录,从我的登录控制器到下一个控制器的 segue 不起作用。

编辑2:

从更多的研究中我发现它是因为我使用代理登录。登录是异步的,我使用 AFNetworking 进行调用,完成后我调用我的登录委托(在本例中为登录 VC)。此时,登录 VC 可以继续查看视图。

登录代码:

我的登录 VC 是代表:

我检查了我何时在主线程中并且我继续并且仍然没有运气。我知道 AFNetworking 也总是在主线程上调用成功/失败块。

棘手的部分。如果我将上面的代码更改为使用块而不是委托,故事板/segue 就不会搞砸,我可以多次登录和注销而没有问题。

为什么 segue 第一次使用委托模式工作,但在注销(展开)时,我不能再次使用该 segue?

编辑 3:

更多调查显示,在展开时,我的登录 VC viewDidAppear 被调用了两次。在初始展开时,视图看起来仍然在堆栈上,显示它快速显示并调用 viewDidAppear。然而,这很快就被动画化了,并且 viewWillAppear 被另一个 VC 第二次调用。我认为这可能是问题的根源。为什么当我放松到那个 VC 时,它被动画化了,却又被动画化了?

0 投票
2 回答
3388 浏览

ios - 适用于 iOS 8 和 iOS 9 的自定义 Unwind Segue

我的问题是,如何让以下自定义展开转场在 iOS 9 之前版本的设备以及运行 iOS 9 的设备上工作?

我有一个显示视图控制器的自定义 Segue,然后有一个相应的自定义展开 Segue。此代码在 iOS 8 中运行良好,通过创建 UIStoryboardSegue 的子类并实现该perform方法来实现。然后我在我的自定义导航控制器中覆盖以下方法:

在 iOS 9 中,segueForUnwindingToViewController已弃用。它仍然适用于 MyViewController CustomSegue;但是,默认展开转场不再适用于任何其他展开转场。尽管在 super 上调用该方法会返回一个 unwind segue,但 segue 永远不会发生,视图控制器永远不会弹出,并且用户永远无法返回上一个屏幕。所以要明确一点,如果我使用常规的 show segue,则相应的 unwind segue 会调用已弃用的方法,该方法会调用 super 上的方法,并且不起作用。

我观看了故事板上的 WWDC 演讲,我能够通过以下方式在 iOS 9 中解决此问题:a)不再在我的自定义导航控制器中覆盖此方法,b)进入故事板,单击自定义 segue,然后输入CustomSegue作为 Segue 类。不幸的是,由于我的目标是 iOS 7,我收到警告“只有自定义 segues 支持 iOS 9 之前的类名”,并且自定义展开 segue 现在不适用于 iOS 7 或 iOS 8!

0 投票
2 回答
583 浏览

ios - iOS 9 中的标准展开转场有何变化?

我有一个带有主控制器的应用程序,它推动用户进行选择的子控制器。这个控制器的顶部是取消/保存导航按钮,它们关闭子节点并将数据传递回父节点。这在 iOS 8 中运行良好。

  • 故事板显示连接到展开到父方法的导航按钮
  • 父级上存在展开方法
  • 用标准的 push segue 推动孩子

在 iOS 9 中,按钮什么都不做。shouldPerformSegue... 没有被调用。更改为自定义 segue 也无济于事。

在应用程序的其他地方,同样的行为表现出来。被推动的事情不能被解雇。模态仍然按预期工作。

我们看过 WWDC 视频。找不到相关的更改。

有没有其他人有这个问题?

0 投票
1 回答
1149 浏览

ios - 在 xcode 7 ios9 中未触发展开 segue 动作

我有一个放松的 segue 问题。

我有两个视图控制器,“main”和“about”。我想实现以下简单的操作:

  1. 单击“main”上的按钮 (A) 时,将显示“about”视图。
  2. 当单击“关于”上的按钮 (B) 时,“关于”视图消失并返回“主”视图。

我没有使用任何导航控制器。我所做的如下:

  1. 创建一个从按钮 (A) 到“关于”的“显示”转场。
  2. 自定义“about”视图控制器的 UIViewController 并创建 IBAction func unwind(s: UIStoryboardSegue)。里面只有一行代码: print("unwind")
  3. 按住 Control 键从按钮 (B) 拖动到“about”视图控制器上的“exit”按钮,并将展开 segue 链接到展开函数。

但是,当我单击“关于”视图上的按钮 (B) 时,不会触发打印,“关于”视图也不会展开。

我不知道这里发生了什么,需要一些帮助。我在 xcode 7 上,在 iOS 9 下使用 swift 2。

谢谢你。

0 投票
1 回答
433 浏览

ios - 使用 show segue 和使用导航控制器有什么区别?

我是 iOS 开发的新手。我发现不使用导航控制器,我可以简单地连接一个带有“显示”segue 的按钮并使用 unwind segue 来实现两个视图之间的简单移动。另一方面,我也知道可以为此目的使用导航控制器。

这两种方式有什么区别?谢谢你。

0 投票
0 回答
89 浏览

ios - 使用自定义类执行 unwind-segue

我不想为此使用 NavigationController。

我在两个 ViewController 之间有一个带有自定义类 UIStoryboardSegue 的 Segue(Show(Push))。现在我想“弹出”当前的 ViewController,经过一些阅读我认为这被称为“unwind segue”。

  1. 我有一个在运行时添加了代码的 UIButton。如何将展开转场添加到此按钮?

  2. 我如何使用我的自定义类来展开 segue 动画?:

    /li>
0 投票
1 回答
579 浏览

ios - Unwind segue 在 iOS9 中停止工作 > 冻结而没有崩溃

我有一个带有主视图控制器的 iOS 应用程序,它连续显示 2 个模式。

所以这种序列:

VC1 > M1 > M2

我在模态 2 中有一个放松转场,我想用它跳回 VC1。在 VC1 中,我添加了一个 IBAction:

在 iOS 8 和 Xcode 6 中一切正常。但是在 Xcode 7 和 iOS 9 中,在调用 unwind segue M2 之后,我注意到调用了 unwindFromM2 但之前的视图 (M2) 并没有消失并且基本上冻结了。Xcode 中没有错误或崩溃。寻求建议。

我确实直接从黄色视图控制器图标拖动到情节提要中的退出图标(没有将按钮与展开相关联)。这可能是原因吗?我有一个用于退出视图控制器的两步对话框,并且无法直接拖动动作来触发展开。

0 投票
1 回答
1360 浏览

ios - 为什么我的 unwind segue 回退太远了?

我正在尝试为我的应用程序的注册过程创建控制器架构。下面是当前状态的图像:

控制器架构

该应用程序第一次从登录页面启动,如果用户单击“注册”,则会通过self.presentViewController. 导航控制器然后推送通过视图控制器,然后推送到第二个视图控制器。在第二个视图控制器上,用户必须先按“Go”以模态方式导航到请求附加信息的视图控制器,然后才能继续注册过程。一旦用户在这个模态呈现的控制器上输入了附加信息,用户按下“Go Back”通过展开转场返回到第二个视图控制器。

但是,当按下它时,展开转场将返回到第二个视图控制器,但随后立即返回到“登录”页面。即使 unwind 函数嵌套在第二个视图控制器中,似乎 unwind segue 会弹出所有模态呈现的视图。

发生了什么,展开到第二个注册页面的解决方案是什么?