在segue之前做一些代码?

时间:2015-05-31 14:39:55

标签: swift xcode6

我想做一个转换器, 这是它的工作原理: 在初始屏幕上,它询问您要转换的单位, 然后当用户点击按钮时,它将按钮的标题作为字符串发送到下一个视图控制器, 然后使用if语句并检查标题字符串到所有单位,如英寸,米,码等,它标识我们将从哪个单位转换, 然后在它编辑的文本字段中的“编辑确实更改”功能并给出答案 当它识别出按钮标题并将按钮标题发送到下一个视图时,我遇到了一个问题,发生的事情是它没有执行内部功能的触摸并直接发送不带按钮标题的字符串,

这是代码

class lengthconversions: UIViewController {

var from = "From"

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "answer" {
        if let destinationVC = segue.destinationViewController as? lengthconversionsanswer{
            destinationVC.from = from

        }
    }
}

@IBAction func fromunit(sender: AnyObject) {
    let buttonTitle = (sender as? UIButton)?.titleLabel?.text
    from = buttonTitle!
    print(from)
}}

我怎么能做到内部功能发生然后发生 通过segue进行数据传输。

p.s - 挂钩segue的按钮与之相同 使用触摸内部功能

1 个答案:

答案 0 :(得分:0)

prepareForSegue函数的参数为​​sender。如果您因点击按钮而执行segue,则sender将成为按钮。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  if segue.identifier == "answer" {
    if let destinationVC = segue.destinationViewController as? lengthconversionsanswer,
       let button = sender as? UIButton {
      destinationVC.from = button.titleLabel?.text!
    }
  }
}