segue 不去目的地控制器

Posted

技术标签:

【中文标题】segue 不去目的地控制器【英文标题】:segue not going to destination controller 【发布时间】:2014-03-07 19:12:59 【问题描述】:

在我的应用程序中,我有一个手动触发的推送序列,称为“详细信息”。它从源控制器连接到目标控制器,并设置了它的标识符。在我的代码中,我调用了

[self performSegueWithIdentifier:@"details" sender:sender];

我可以看到 prepareForSegue 函数正在触发,并且已验证目标控制器的类型是否正确。我向目标控制器传递了一些它需要正确显示的数据。奇怪的是什么都没有发生。应用程序不会转到目标控制器。

【问题讨论】:

控制台有输出吗?你使用什么样的 segue 推,模态? self 是导航控制器吗? 假设self 是当前视图控制器,似乎sender 应该设置为self。有导航控制器吗? Push segues 适用于带有根导航控制器的视图控制器。 self 是一个带有根导航控制器的视图控制器。 转场是推转场。将 sender 设置为 self 没有任何影响,实际上并不是让 segue 起作用的强制性要求。 【参考方案1】:

如果您在使用情节提要时遇到 performSegueWithIdentifier 问题,请注意以下几点

您已正确连接故事板中的转场 您的 Segue 标识符与情节提要上的标识符匹配 您的 ViewController 的类尚未解除分配 (这有时可能会因从另一个类调用而意外发生) 尝试将发件人设置为“自己”而不是发件人

另外,如果您计划在 ViewController 之间传递数据,建议您使用 prepareForSegue 方法,允许您在 segue 之前传递值。

【讨论】:

以上是关于segue 不去目的地控制器的主要内容,如果未能解决你的问题,请参考以下文章

我可以将自定义 segue 用于非视觉目的吗?

Segue没有显示导航栏

转至 TabBar 控制器

如何在 segue 中初始化 UIButton 的 titleLabel 字体?

如何在 iOS 应用程序中手动设置“返回”目的地

如何创建 Segue 的动画执行和展开 Segue?