Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 确定segue是否为展开segue?_Iphone_Objective C_Ios_Storyboard_Segue - Fatal编程技术网

Iphone 确定segue是否为展开segue?

Iphone 确定segue是否为展开segue?,iphone,objective-c,ios,storyboard,segue,Iphone,Objective C,Ios,Storyboard,Segue,在prepareForSegue方法中,我有大约6个segue执行相同的操作,但是,我想为我的展开segue跳过此操作,但我不知道如何确定正在传递的segue是否为展开segue 任何帮助都将不胜感激。啊,没关系,机器猫得到了答案,基本上就是给放松段一个标识符。直到我意识到你可以从故事板左边的拉出面板中选择segues并从那里设置标识符,我才知道该怎么做 谢谢 prepareforsgue仅在前进方向调用。当你放松时,它不会被调用。要处理展开序列,您需要将退出按钮连接到IBAction方法,该方

在prepareForSegue方法中,我有大约6个segue执行相同的操作,但是,我想为我的展开segue跳过此操作,但我不知道如何确定正在传递的segue是否为展开segue


任何帮助都将不胜感激。

啊,没关系,机器猫得到了答案,基本上就是给放松段一个标识符。直到我意识到你可以从故事板左边的拉出面板中选择segues并从那里设置标识符,我才知道该怎么做


谢谢

prepareforsgue
仅在前进方向调用。当你放松时,它不会被调用。要处理展开序列,您需要将退出按钮连接到IBAction方法,该方法将序列作为参数。当您展开时,将调用此方法


这有更多关于如何使用它们的细节。

我对斯威夫特本人来说是个新手。但我相信这里有一些误解。如果您自己添加一个展开序列,则会触发prepareForSegue。但是单击导航栏中自动显示的“后退”按钮时,实际上并没有触发prepareForSegue。

既然您自己设置了segues,为什么不在
prepareForSegue
中使用
if
测试来跳过额外的方法调用呢?我知道的唯一方法是编写一个“if”语句,该语句检查我要在其上执行代码的所有6个序列标识符。我宁愿用一个“如果不是放松的话,那就废话”。据我所知,您无法将标识符设置为展开序列,并且没有其他方法来确定这一点?在IB中设置展开序列的
标识符
,然后检查
是否(否==[[segue identifier]IsequalString:@“展开”])
prepareForSegue:
中,代码只对非展开段运行。如何设置展开段的标识符?请告诉我。很高兴你在属性检查器中找到了这个字段。是的,我忘记了我以前是怎么做的,直到我看到这个答案:-)我刚刚测试了这个,Becca是对的。在我上面的描述中,这不是一个问题。THX这仅适用于
segue.destinationViewController
。从文档中可以看出:“在展开和标准段中,源场景都可以实现prepareForSegue以将信息发送到目的地。”确认您可以在prepareForSegue中检查展开段。展开段的标识符很好。您的评论似乎相互矛盾,@Travis。我的经验和苹果的技术笔记表明,
prepareForSegue:sender:
实际上是用于展开序列的,所以这个答案似乎不正确。