检查是否按下按钮以获取正确的数据

Checking if button is pressed to segue correct data

您好,这可能是一个简单的问题,如果已经在这里,我深表歉意,我搜索了所有可能的内容,但找不到适合我的具体情况的答案。

问题来了。我目前正在创建一个文本冒险,以使用 Xcode 6 中的 swift 练习一些 iOS 开发,在这种情况下,我的视图控制器中有一个文本视图,它可以滚动到其自身的底部和屏幕底部的 2 个按钮。关键是,如果您按下一个按钮,它会将您带到不同的场景,并且还会更改我在项目中定义的 class UserCharacter 的一些一般字符统计信息,更改一些基本数据,反之亦然。

事情在我的 segue 中,我需要检查用户按下了哪个按钮,这样我就知道要 segue 哪些数据,但不太清楚该怎么做。

这是我目前的情况,(我之前已经传递过一次数据,但不需要做出选择,所以相当简单)

class RouteZeroViewController: UIViewController {

var character : UserCharacter?

@IBAction func choiceOneButton(sender: AnyObject) {
    character?.strength += 3
    character?.intelligence -= 2
}
@IBAction func choiceTwoButton(sender: AnyObject) {
    character?.agility += 2
    character?.intelligence += 2
    character?.courage -= 2
}
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    // set initial textView load at the top instead of middle/bottom
    self.textView.scrollRangeToVisible(0)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    // Get the new view controller using [segue destinationViewController].
    // check for button one push ????????
    var thirdSceneA = segue.destinationViewController as RouteOneAViewController
    thirdSceneA.character = character

    // check for button two push ????????
    var thirdSceneB = segue.destinationViewController as RouteOneBViewController
    thirdSceneB.character = character
    }

}

如有任何帮助,我们将不胜感激。谢谢..

您需要将 segue 从视图控制器添加到 viewcontroller 参考这个 link : IOS7, Segue and storyboards - How to create without a button?

为每个按钮设置标签 属性,即 1 和 2

在按钮上单击传递按钮

   @IBAction func choiceOneButton(sender: AnyObject) 
{
character?.strength += 3
character?.intelligence -= 2
 self.performSegueWithIdentifier("identifer", sender: sender)
}


 @IBAction func choiceTwoButton(sender: AnyObject)
{
character?.agility += 2
character?.intelligence += 2
character?.courage -= 2
self.performSegueWithIdentifier("identifer", sender: sender)
 }

准备segue方法检查

 override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) 
{
   var btn:UIButton=sender as UIButton

        if btn.tag==1
        {
            // First button clicked
        }

        if btn.tag==2
        {
            // Second button clicked
        }

}