找到导致segue操作的按钮?

时间:2016-04-08 19:54:57

标签: ios swift uibutton segue

我是iOS的新手并且正在努力满足这一要求。

我有一个带有两个只读UITextField和两个按钮的视图。文本字段将保存开始和结束位置。单击任一按钮segue到具有TableView位置列表的视图。基本上用户将点击一个按钮将它们带到表视图....他们选择他们想要的位置并单击完成,将它们转回原始视图并将所选位置插入到最初按钮旁边的文本字段中点击...这样我可以使用相同的视图来选择开始和结束位置....当然还有一些逻辑,这样他们就不会为两者选择相同的位置。例如从家到家。

如果有此代码......

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "segueChoiceMade") {
        let passingData = segue.destinationViewController as! LocationChoiceViewController;

        passingData.mileageToPass = mileageToPass
        passingData.fuelAmountToPass = fuelAmountToPass
        passingData.senderToPass = sender.identifier
    }
}

我希望sender.identifier有按钮的标识,但我得到的只是'Some'....

我应该怎么做呢?我如何获得按钮的身份?感谢。

1 个答案:

答案 0 :(得分:0)

您正在寻找sender参数 如果您在发件人的故事板中设置segue,您将始终找到导致segue的对象 现在有一个简单的,如果你可以检测到哪个按钮触发了segue。

   @IBOutlet weak var myButton: UIButton!
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        if (segue.identifier == "segueChoiceMade") {
            let passingData = segue.destinationViewController as! LocationChoiceViewController
            if sender === myButton {

由于发件人是一个对象,您可以使用标识===运算符对一个对象的引用进行检查。或者您可以尝试使用as?运算符对其进行转换,以反对您认为它应该是并检查其内部属性