Swift Xcode 8:如何在不使用segue或情节提要的情况下将数据传递给视图控制器?

Swift Xcode 8:如何在不使用segue或情节提要的情况下将数据传递给视图控制器?,swift,uiviewcontroller,Swift,Uiviewcontroller,我有一段代码,在按下按钮时实例化一个视图控制器: @IBAction func addChapter(_ sender: Any) { let addChapterController = AddChapterViewController() self.present(addChapterController, animated: true, completion: nil) } 如果没有prepareForSegue,如何将数据传递到此新创建的视图控制器?在AddChapte

我有一段代码,在按下按钮时实例化一个视图控制器:

@IBAction func addChapter(_ sender: Any) {
    let addChapterController = AddChapterViewController()
    self.present(addChapterController, animated: true, completion: nil)
}

如果没有prepareForSegue,如何将数据传递到此新创建的视图控制器?

AddChapterViewController
中,您可以创建要更改的变量,例如:

class AddChapterViewController: UIViewController{
    var name: String?
    var id: Int?
    // ....
}
因此,您现在可以像这样使用其属性:

@IBAction func addChapter(_ sender: Any) {
    let addChapterController = AddChapterViewController()
    addChapterController.name = "Name example"
    addChapterController.id = 10

    self.present(addChapterController, animated: true, completion: nil)
}

AddChapterViewController
中,您可以创建要更改的变量,例如:

class AddChapterViewController: UIViewController{
    var name: String?
    var id: Int?
    // ....
}
因此,您现在可以像这样使用其属性:

@IBAction func addChapter(_ sender: Any) {
    let addChapterController = AddChapterViewController()
    addChapterController.name = "Name example"
    addChapterController.id = 10

    self.present(addChapterController, animated: true, completion: nil)
}

设置视图控制器实例的属性。设置视图控制器实例的属性。嗨,我尝试了这个。但是,如果我试图在AddChapterViewController类的viewDidLoad方法中访问属性名称和id,则得到的属性名称和id值为零。@KKbot在本例中,属性
name
id
仅在用户按下按钮时设置,如果您想在
viewDidLoad
中设置它的值,您应该在调用属性之前将这段代码移到那里。是的。谢谢解决了那个问题。嗨,我试过这个。但是,如果我试图在AddChapterViewController类的viewDidLoad方法中访问属性名称和id,则得到的属性名称和id值为零。@KKbot在本例中,属性
name
id
仅在用户按下按钮时设置,如果您想在
viewDidLoad
中设置它的值,您应该在调用属性之前将这段代码移到那里。是的。谢谢解决了那个问题。