Swift 如何设置可以从prepareForSegue接收实例的空变量?

Swift 如何设置可以从prepareForSegue接收实例的空变量?,swift,xcode,instance,var,Swift,Xcode,Instance,Var,我理解prepareForSegue函数,但不知道如何设置可以接收实例的空变量 swift 4/Xcode 9.2 // I want to be able to send classes that look like this to var pickedQuiz class mathQuestionBank { var list = [Questions]() init() { let item = Questions(text: "What is two plus two?"

我理解prepareForSegue函数,但不知道如何设置可以接收实例的空变量

swift 4/Xcode 9.2

// I want to be able to send classes that look like this to var pickedQuiz

class mathQuestionBank {

var list = [Questions]()

init() {

    let item = Questions(text: "What is two plus two?", correctAnswer: "four", textA: "three", textB: "four", textC: "five", textD: "9y" )

    list.append(item)

    list.append(Questions(text: "How many sides does a triangle have?", correctAnswer: "three", textA: "two", textB: "four", textC: "three", textD: "five"))

    list.append(Questions(text: etc....

    }
}

只需使用prepareForSegue

在另一个类中,可以按如下方式定义变量:

class NextViewController {

var yourVariable = ABCType()

}

不清楚你所说的传递实例是什么意思。您的意思是传递某个自定义对象的实例,而不仅仅是字符串之类的值类型?只需将@Madhur示例中的变量更改为所需的类类型:

class ClassToPass {
  value1: String? 
  value2: Data?
  value3: Int
  init(value1: String?, value2: Data?, value3: Int?) {
    self.value1 = value1
    self.value2 = value2
    self.value3 = value3
  }
}

class myViewController: UIViewController {

  override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "segueIdentifier" {
            if let nextVC = segue.destinationViewController 
              as? NextViewController {
                let valueToPass = ClassToPass(value1: "A String", 
                                              value2: nil, 
                                              value3: 7)

                nextVC.yourVariable = valueToPass
            }
        }
  }
}

//And in the other view controller:
class NextViewController {
  var yourVariable: ClassToPass? = nil
}

另一端需要一个变量来接收它。“但是当然了!”马丁穆尔顿谢谢你的回答,我在另一端有一个变量。如何初始化变量以便向其传递实例?这不就是在NextViewController上将字符串HelloWorld传递给您的变量吗?如何传递实例?我应该如何在NextViewController上设置变量以接收该实例?您可以非常类似地执行此操作,无论如何,您可以给出另一个示例,我理解prepareForSegue部分,我正在努力在NextViewController上设置一个空变量以再次接收instancecheck!天哪!ABCType只是为了解释一下,在那里使用一个有效的数据类型,如果您使用的是字符串,请通过删除带有字符串的ABCType再次检查。嘿,邓肯,谢谢您的回复。为了更加清晰,我在上面添加了更多代码。但我试图在mathQuestionBank上面发送一个完整的实例示例,由var PickedQuike接收。如果我这样写:var pickedquick=mathQuestionBank,一切都很好。但我需要能够将不同的实例发送到var PickedQuike,即:geographyQuestionBank、scienceQuestionBank等,一次只发送一个实例,我希望这能解决所有问题。如果你需要更多信息,请告诉我。
class NextViewController {

var yourVariable = ABCType()

}
class ClassToPass {
  value1: String? 
  value2: Data?
  value3: Int
  init(value1: String?, value2: Data?, value3: Int?) {
    self.value1 = value1
    self.value2 = value2
    self.value3 = value3
  }
}

class myViewController: UIViewController {

  override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "segueIdentifier" {
            if let nextVC = segue.destinationViewController 
              as? NextViewController {
                let valueToPass = ClassToPass(value1: "A String", 
                                              value2: nil, 
                                              value3: 7)

                nextVC.yourVariable = valueToPass
            }
        }
  }
}

//And in the other view controller:
class NextViewController {
  var yourVariable: ClassToPass? = nil
}