如何在不使用swift

时间:2016-01-30 05:14:38

标签: ios swift uiviewcontroller segue uistoryboardsegue

我目前有这个Swift代码,它不会将存储在分数中的int值传递到currentScorehigherScorehighScorecurrentScorehighScore都在GameOverViewController上实例化。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "GameOverVC" {
        let svc: GameOverViewController = segue.destinationViewController as! GameOverViewController
        score = svc.currentScore
        higherScore = svc.highScore
    }
}

我目前正在使用故事板推送到下一个视图。这是推送代码。

if let resultController = self.storyboard?.instantiateViewControllerWithIdentifier("GameOverVC") as? GameOverViewController {
    self.presentViewController(resultController, animated: true, completion: nil)
}

所有代码编译都很好,所以我需要有一个实际的UIButton还是我需要在方法中添加其他内容或GameOverViewCotroller

4 个答案:

答案 0 :(得分:0)

您指定的值是错误的方式......

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "GameOverVC" {
        let svc: GameOverViewController = segue.destinationViewController as! GameOverViewController
        svc.currentScore = score //pass self.score to svc.currentScore
        svc.highScore = higherScore //pass self.higherScore to svc.currentScore
    }
}

答案 1 :(得分:0)

只是还原并尝试正确分配值

 score = svc.currentScore
 higherScore = svc.highScore

  svc.currentScore = score 
  svc.highScore = higherScore

答案 2 :(得分:0)

如果您想传递图像,请执行以下操作 - 在prepareForSegue中,您无法访问目标视图控制器的@IBOutlets,因为它们尚未设置。您应该将图像分配给目标视图控制器的属性,然后将其移动到viewDidLoad中的位置:

在源视图控制器中:

覆盖func prepareForSegue(segue:UIStoryboardSegue,sender:AnyObject?){

if segue.identifier == "toBrowsePage" {
    let dvc = segue.destinationViewController as! ListPage
    dvc.myImage = postingImage.image
}

} 在目标视图控制器中:

class ListPage:UIViewController {     @IBOutlet弱var的浏览图片:UIImageView!     var myImage:UIImage!

override func viewDidLoad() {
    super.viewDidLoad()
    browsingImage.image = myImage
}

}

答案 3 :(得分:0)

你可以通过2种方法触发你的segue

将按钮拖到segue并在“界面构建器”

中以此方式触发

或在您的视图控制器中,您可以致电

self.performSegueWithIdentifier("GameOverVC", sender: self)