如何将我的分数变量发送到另一个视图控制器?

时间:2015-08-06 09:28:17

标签: swift cocoa-touch uiviewcontroller

点击按钮后,我转到新的视图控制器。

我可以在IBOutlet中使用var score = 0制作积分并显示我使用Score.text = "\(++score)"的点。

如何将分数传递给游戏?屏幕/视图控制器到名为" resultScore"?

的标签

3 个答案:

答案 0 :(得分:4)

在目标视图控制器中添加属性secondViewController,并使用prepareForSegue

Current View Controller

   override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
          if (segue.identifier == "segueTest") {
               var svc = segue!.destinationViewController as secondViewController;

               svc.toPass = textField.text

           }
        }
<{>>在secondViewController中,您可以定义一个变量,例如String

    var toPass:String!

secondViewController功能下的viewDidLoad添加此代码

    println(\(toPass))

答案 1 :(得分:0)

  

FirstViewController

@IBOutlet weak var textField: UITextField!

...

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let vc = segue.destinationViewController as? GameOverViewController {
        vc.score = Int(textField?.text)
    }
}

...
  

SecondViewController

var score: Int!
@IBOutlet weak var label: UILabel!

... 

override func viewDidLoad() {
    super.viewDidLoad()
    label.text = String(score)
}

此方法将在按下按钮时调用,在此处您可以为第二个视图控制器设置一些属性

答案 2 :(得分:0)

实现这一目标的一种简单方法是,您可以使用 If cell2.Value <> "" Then ' cell2 is a cell in column B ' Set cell in column A equal to column B cell2.Offset(0, -1).Value = cell2.Value ' Set cell in column D equal to column C cell2.Offset(0, 2).Value = cell2.Offset(0, 1).Value End If

首先在你的NSUserDefault中,当你提高分数时,你可以用这种方式存储你的分数:

playScene

在您的下一个视图控制器中,您可以通过这种方式获得分数:

Score.text = "\(++score)"
NSUserDefaults.standardUserDefaults().setInteger(score, forKey: "userScore")

请记住,resultScore = NSUserDefaults.standardUserDefaults().integerForKey("userScore") 的类型应为resultScore