我有大约6个Segue在prepareForSegue方法中执行相同的操作,但是我想跳过我的Unwind Segue的这个操作,但是我无法确定传递的segue是一个Unwind Segue还是其他类型的Segue。
任何帮助都将不胜感激。
我有大约6个Segue在prepareForSegue方法中执行相同的操作,但是我想跳过我的Unwind Segue的这个操作,但是我无法确定传递的segue是一个Unwind Segue还是其他类型的Segue。
任何帮助都将不胜感激。
啊,没关系,机器猫已经给出了答案,就是给拆解回退(即 unwind segue) 添加一个标识符。一开始我不知道怎么做,直到意识到可以从Storyboard左侧的拉出面板中选择segue并在那里设置标识符。
谢谢!
prepareForSegue
只在前进方向上调用,当你执行返回操作时不会被调用。要处理返回操作,你需要将退出按钮连接到一个接收segue参数的IBAction方法中。这个方法将在你执行返回操作时被调用。
这个文章有更多关于如何使用它们的细节。
segue.destinationViewController
。来自文档的说明:“在取消和标准转场中,源场景都可以实现 prepareForSegue 以向目标发送信息。” - AndreasprepareForSegue:sender:
实际上会被用于反向展开segue,因此这个答案似乎是不正确的。 - big_m我自己对SWIFT还比较新,但我认为这里有一些误解。如果您自己添加了一个unwind segue,那么prepareForSegue会被触发。但是在点击导航栏中自动显示的“返回”按钮时,实际上不会触发prepareForSegue。
prepareForSegue
中使用if
测试来跳过额外的方法调用呢? - Robotic CatprepareForSegue:
方法中检查if (NO == [[segue identifier] isEqualToString:@"Unwind"])
,以便代码仅对非unwind segues运行。 - Robotic Cat