问题标签 [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.
objective-c - 展开或关闭视图控制器不起作用。Xcode 6.4
一旦发生确认操作,我一直试图让我的推送视图控制器关闭或返回。我在 stackoverflow 中阅读了有关此主题的许多帖子(我以前从未这样做过),例如: 如何以编程方式执行 Unwind segue?
但有相当多的问题。首先,从视图控制器到退出的 ctrl 拖动虽然这似乎是 Xcode 6 中的一个错误,但不起作用,所以我按照建议添加了以下解决方法并来回更改了类:
这允许我添加从我的操作按钮到退出的转场。我当然也给了它一个标识符(unwindSegue
)。
然后我在按钮代码中添加了performWithSegueWithIdentifie
r 行,如下所示:
然而,我的放松仍未开始。
也许这仍然是一个问题xcode 6.4
,因为我需要使用不同的解决方法?
无论如何,这方面的任何帮助都会很棒
谢谢
ios - iOS - 放松到我的初始视图控制器
我正在使用展开 segue 展开到故事板中的初始视图控制器。展开效果很好,我在初始视图控制器中实现了这个方法:
但是,如果我在展开后尝试转到另一个视图控制器,则会收到以下错误:
警告:尝试呈现不在窗口层次结构中的视图!
似乎只有当我展开到情节提要中被检查为“初始视图控制器”的视图控制器时才会发生这种情况。这是一个错误吗?我应该能够放松到那个初始控制器吗?其他想法?
编辑:
这是我执行第二次转场的方式:
我应该注意到这是一个登录/注销问题。当我第一次登录时,从我的登录控制器到我的下一个控制器的 segue 工作。当我注销时,我会放松到初始视图控制器。然后我再次登录,从我的登录控制器到下一个控制器的 segue 不起作用。
编辑2:
从更多的研究中我发现它是因为我使用代理登录。登录是异步的,我使用 AFNetworking 进行调用,完成后我调用我的登录委托(在本例中为登录 VC)。此时,登录 VC 可以继续查看视图。
登录代码:
我的登录 VC 是代表:
我检查了我何时在主线程中并且我继续并且仍然没有运气。我知道 AFNetworking 也总是在主线程上调用成功/失败块。
棘手的部分。如果我将上面的代码更改为使用块而不是委托,故事板/segue 就不会搞砸,我可以多次登录和注销而没有问题。
为什么 segue 第一次使用委托模式工作,但在注销(展开)时,我不能再次使用该 segue?
编辑 3:
更多调查显示,在展开时,我的登录 VC viewDidAppear 被调用了两次。在初始展开时,视图看起来仍然在堆栈上,显示它快速显示并调用 viewDidAppear。然而,这很快就被动画化了,并且 viewWillAppear 被另一个 VC 第二次调用。我认为这可能是问题的根源。为什么当我放松到那个 VC 时,它被动画化了,却又被动画化了?
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!
ios - iOS 9 中的标准展开转场有何变化?
我有一个带有主控制器的应用程序,它推动用户进行选择的子控制器。这个控制器的顶部是取消/保存导航按钮,它们关闭子节点并将数据传递回父节点。这在 iOS 8 中运行良好。
- 故事板显示连接到展开到父方法的导航按钮
- 父级上存在展开方法
- 用标准的 push segue 推动孩子
在 iOS 9 中,按钮什么都不做。shouldPerformSegue... 没有被调用。更改为自定义 segue 也无济于事。
在应用程序的其他地方,同样的行为表现出来。被推动的事情不能被解雇。模态仍然按预期工作。
我们看过 WWDC 视频。找不到相关的更改。
有没有其他人有这个问题?
ios - 在 xcode 7 ios9 中未触发展开 segue 动作
我有一个放松的 segue 问题。
我有两个视图控制器,“main”和“about”。我想实现以下简单的操作:
- 单击“main”上的按钮 (A) 时,将显示“about”视图。
- 当单击“关于”上的按钮 (B) 时,“关于”视图消失并返回“主”视图。
我没有使用任何导航控制器。我所做的如下:
- 创建一个从按钮 (A) 到“关于”的“显示”转场。
- 自定义“about”视图控制器的 UIViewController 并创建 IBAction func unwind(s: UIStoryboardSegue)。里面只有一行代码: print("unwind")
- 按住 Control 键从按钮 (B) 拖动到“about”视图控制器上的“exit”按钮,并将展开 segue 链接到展开函数。
但是,当我单击“关于”视图上的按钮 (B) 时,不会触发打印,“关于”视图也不会展开。
我不知道这里发生了什么,需要一些帮助。我在 xcode 7 上,在 iOS 9 下使用 swift 2。
谢谢你。
ios - 使用 show segue 和使用导航控制器有什么区别?
我是 iOS 开发的新手。我发现不使用导航控制器,我可以简单地连接一个带有“显示”segue 的按钮并使用 unwind segue 来实现两个视图之间的简单移动。另一方面,我也知道可以为此目的使用导航控制器。
这两种方式有什么区别?谢谢你。
ios - 使用自定义类执行 unwind-segue
我不想为此使用 NavigationController。
我在两个 ViewController 之间有一个带有自定义类 UIStoryboardSegue 的 Segue(Show(Push))。现在我想“弹出”当前的 ViewController,经过一些阅读我认为这被称为“unwind segue”。
我有一个在运行时添加了代码的 UIButton。如何将展开转场添加到此按钮?
我如何使用我的自定义类来展开 segue 动画?:
/li>
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 中没有错误或崩溃。寻求建议。
我确实直接从黄色视图控制器图标拖动到情节提要中的退出图标(没有将按钮与展开相关联)。这可能是原因吗?我有一个用于退出视图控制器的两步对话框,并且无法直接拖动动作来触发展开。
ios - 为什么我的 unwind segue 回退太远了?
我正在尝试为我的应用程序的注册过程创建控制器架构。下面是当前状态的图像:
该应用程序第一次从登录页面启动,如果用户单击“注册”,则会通过self.presentViewController
. 导航控制器然后推送通过视图控制器,然后推送到第二个视图控制器。在第二个视图控制器上,用户必须先按“Go”以模态方式导航到请求附加信息的视图控制器,然后才能继续注册过程。一旦用户在这个模态呈现的控制器上输入了附加信息,用户按下“Go Back”通过展开转场返回到第二个视图控制器。
但是,当按下它时,展开转场将返回到第二个视图控制器,但随后立即返回到“登录”页面。即使 unwind 函数嵌套在第二个视图控制器中,似乎 unwind segue 会弹出所有模态呈现的视图。
发生了什么,展开到第二个注册页面的解决方案是什么?