在我的应用程序启动时,它以编程方式使用 segue 显示 LoginViewController。视图控制器以模态方式呈现,过渡设置为交叉溶解。成功验证后,我想通过以编程方式触发 unwind segue 来关闭登录视图。所以我将它添加到我的头文件中:
- (IBAction)unwindSegue:(UIStoryboardSegue *)segue;
现在在 IB 中,我可以控制从“文件所有者”LoginViewController 拖动到退出按钮并选择unwindSegue:
. 这会创建一个手动转场,它会正确显示在文件所有者和退出按钮的连接检查器中。然后我从 IB 的场景中单击新创建的 Unwind segue,然后给它一个名称。如果我单击“转到”按钮以进行 unwind segue 操作,它会将我带到上面提到的声明。
到目前为止一切顺利,然后我在 GCD 块中成功验证后触发此展开转场:
....
dispatch_async(dispatch_get_main_queue(), ^
{
[self performSegueWithIdentifier:@"UnwindSegueIdentifier" sender:self];
[self.spinner removeFromSuperview];
self.spinner = nil;
});
......运行时没有任何反应。微调器确实被正确移除,但没有迹象表明展开 segue 正在执行。
执行中的断点unwindSegue:
永远不会被击中。没有抛出任何错误。没有任何东西被写入控制台。标识符是正确的,我检查了三次(否则它无论如何都会失败)。
我确实注意到,Xcode 认为没有unwindSegue:
链接:
我无法从前面的小空圆圈拖动并将其unwindSegue:
链接到退出按钮。
任何帮助将不胜感激。