在 Swift 中将值从 1 个函数传递到另一个函数
Passing along values from 1 function to another in Swift
所以我在这个 class 中有 2 个函数需要使用相同的变量。该变量由来自 SwiftyJSON 框架的 JSON 对象填充。
我开始像这样实例化变量:
var fooGame : JSON?;
然后我像这样填满这个坏男孩:
func tableView(gamesListTableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if (indexPath.row < InvitesList.count) {
//acceptInvite
} else {
performSegueWithIdentifier("presentGame", sender: self)
self.fooGame = GamesList[indexPath.row - InvitesList.count];
println(self.fooGame);
}
}
完美,fooGame 的值被打印到控制台!
然而这就是问题所在,我想在这里再次使用 self.fooGame 中的值:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "presentGame") {
var svc = segue.destinationViewController as! Game;
println(self.fooGame);
}
}
这里我在控制台中打印了 nil。
更改这两行的行顺序,因为您是在执行 segue
之后设置 fooGame
self.fooGame = GamesList[indexPath.row - InvitesList.count];
performSegueWithIdentifier("presentGame", sender: self)
所以我在这个 class 中有 2 个函数需要使用相同的变量。该变量由来自 SwiftyJSON 框架的 JSON 对象填充。
我开始像这样实例化变量:
var fooGame : JSON?;
然后我像这样填满这个坏男孩:
func tableView(gamesListTableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if (indexPath.row < InvitesList.count) {
//acceptInvite
} else {
performSegueWithIdentifier("presentGame", sender: self)
self.fooGame = GamesList[indexPath.row - InvitesList.count];
println(self.fooGame);
}
}
完美,fooGame 的值被打印到控制台! 然而这就是问题所在,我想在这里再次使用 self.fooGame 中的值:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "presentGame") {
var svc = segue.destinationViewController as! Game;
println(self.fooGame);
}
}
这里我在控制台中打印了 nil。
更改这两行的行顺序,因为您是在执行 segue
之后设置fooGame
self.fooGame = GamesList[indexPath.row - InvitesList.count];
performSegueWithIdentifier("presentGame", sender: self)