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 不去目的地控制器的主要内容,如果未能解决你的问题,请参考以下文章