我正在快速创建游戏,我的目标是让每个游戏级别访问相同的视图控制器,但我需要从按钮到达该视图控制器发送唯一信息,以便我可以访问下一个视图控制器中的核心数据基于第一个视图控制器发送的信息。
我的问题是我不知道如何从第一个视图控制器向prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
我尝试设置keyPath存储中每个按钮的唯一信息,但我无法访问它
LevelsMainScreen.swift
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var dest : Levels = segue.destinationViewController as Levels
//Getting the value of the keyPath of the tapped button to send to levels view controller
dest.level = sender?.keyPath("levels")
}
这是我想发送给它的视图控制器,所以我可以开始访问核心数据信息
class Levels: UIViewController {
@IBOutlet var lblSubLevel: UILabel!
@IBOutlet var lblLevel: UILabel!
var level = Int()
var subLevel = Int()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
lblLevel.text = "\(level.value)"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
`
答案 0 :(得分:2)
您必须在属性检查器中为故事板设置每个segue的标识符。然后,在LevelsMainScreen.swift控制器中,prepareForSeque方法检查segue标识符是否等于您给出的相应segue标识符。在那里,您可以根据需要分配级别。
ie。,将segue标识符命名为segue1,segue2,segue3,来自每个segue中的属性检查器。
在LevelsMainScreen中,
override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?) {
var dest : Levels = segue.destinationViewController as Levels
if(segue.identifier == "segue1") {
//set your customized level values here...
//ie., dest.level = 1
}
else if(segue.identifier == "segue2") {
//set your customized level values here...
}
else if(segue.identifier == "segue3") {
//set your customized level values here...
}
}