如何通过多个按钮从另一个视图访问同一个视图

How to access the same view from another view by multiple buttons

我正在 swift 中创建一个游戏,我的目标是让每个游戏级别访问相同的视图控制器,但我需要从到达该视图控制器的按钮发送唯一信息,以便我可以访问核心下一个视图控制器中的数据基于从第一个视图控制器发送的信息。

我的问题是我不知道如何在 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.
    }
}

`

您必须在属性检查器中为情节提要中的每个 segue 设置一个标识符。然后,在 LevelsMainScreen.swift 控制器的 prepareForSeque 方法中检查 segue 标识符是否等于您给出的相应 segue 标识符。您可以在那里根据需要分配级别。

即,在每个 segue 的属性检查器中将 segue 标识符命名为 segue1、segue2、segue3。

在 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...
   }
}