多个segues到同一个视图控制器

use*_*291 5 ios segue swift

我对编码很新,所以如果这很愚蠢请温柔:P.

我想通过快速编码实现的是拥有2个视图控制器,可以根据发送segue传递数据.

VC1设置有2个标签和2个按钮.标签1是玩家1的名字,标签2是玩家2的名字.按钮1是从VC2中的全局名称列表中选择播放器1,而按钮2对于播放器2是相同的

VC2有一个选择器视图设置,其中包含一个名称列表和一个"选择"在pickerView中选择的名称的按钮.

我知道如何设置所有按钮,选择器和标签,甚至如何使用prepareForSegue发回数据,但我不知道该怎么做是告诉VC2"选择"按钮将其发送到playerOneSegue或playerTwoSegue基于VC1中选择的按钮.

任何帮助将不胜感激,再次我很抱歉,如果这是愚蠢但我已经卡住了一段时间,并没有找到任何在线帮助.我甚至不确定这是不是我应该这样做的方式.我有一半想要为每个按钮设置一个警报,甚至没有跳到另一个VC,但另一部分想知道如何做到这一点,因为我肯定必须有一种方法大声笑.

sas*_*tch 7

如果您有两个相同VC的segue,则可以为每个segue提供唯一标识符,并根据标识符区分发件人.设置按钮的标签(例如1表示button1和2表单button2)

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
 if (segue.identifier == "firstIdentifier") {
        var VC2 : VC2 = segue.destinationViewController as VC2
        VC2.buttonTag = sender.tag

 }
 if (segue.identifier == "secondIdentifier") {
    var VC2 : VC2 = segue.destinationViewController as VC2
        VC2.buttonTag = sender.tag
 }
}
Run Code Online (Sandbox Code Playgroud)

在VC2中,声明一个变量buttonTag

var buttonTag = 0
Run Code Online (Sandbox Code Playgroud)

无论你在VC2中执行segue,只需检查buttonTag的值

if buttonTag == 1 {
  //segue caused by button1 of VC1
}
else
if buttonTag == 2 {
  //segue caused by button2 of VC1
}
else {
  //segue caused by something else
}
Run Code Online (Sandbox Code Playgroud)

我希望这是你想要实现的目标