segue如果无法访问所有这些

时间:2017-01-13 14:39:42

标签: swift if-statement segue

你好我有问题,因为当我按下按钮时我有一个+ = 1的var计数,所以当我更新de counter时它不会运行所有的segue。例如,如果count == 2,我想访问count == 1和count == 2

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "modos" {
        if count == 1 {
           if let destination = segue.destination as? ModosViewController {
               destination.nnj1 = nombresJugadores[1]
           }
        }
        if count == 2 {
           if let destination = segue.destination as? ModosViewController {
               destination.nnj2 = nombresJugadores[2]
            }
        }

1 个答案:

答案 0 :(得分:0)

如果您真的希望能够将任意数量的名称传递给目标控制器,那么您当前的方法将无效。

您需要在目标视图控制器中拥有一个可以追加新名称的数组。这样,您只需调用目标控制器中每个项目的索引即可。使用您的方法,您将不得不创建无限量的nnj变量,这显然是不可行的。

所以这看起来像这样:

class ModosViewController: UIViewController {
    var names: [String] = [String]()
    ...

}

然后你可以做的只是将prepareForSegue func更改为:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "modos" {
        if let destination = segue.destination as? ModosViewController {
            destination.names = nombresJugadores
        }
    }
}

因为现在您在源中有一个名称数组,您将其传递到目标VC。希望这会有所帮助。