Ios ';UIViewController';不是'的子类型;视图控制器';敏捷的

Ios ';UIViewController';不是'的子类型;视图控制器';敏捷的,ios,swift,Ios,Swift,我正试图让我的类登录信息类访问多个视图控制器中的信息。但是,xCode会抛出一个错误,即UIViewController不是Start\u BirthdayVC'的子类型。我似乎不明白为什么xCode会抛出这个错误 class LoginInfo { func userInfo() { var firstName: String = "" var lastName: String = "" var dateOfBirth: String

我正试图让我的类
登录信息
访问多个
视图控制器
中的信息。但是,xCode会抛出一个错误,即UIViewController不是Start\u BirthdayVC'的子类型。我似乎不明白为什么xCode会抛出这个错误

class LoginInfo {


    func userInfo() {
        var firstName: String = ""
        var lastName: String = ""
        var dateOfBirth: String = ""
        var email: String = ""

        firstName = NameVC().firstNameText!.text!
        lastName = NameVC().lastNameText!.text!
        dateOfBirth = String(Start_BirthdayVC().datePicker.date) //Error here
        email = Start_EmailVC().emailTextField!.text!



    }


}

首先,您的UIViewController初始化似乎不正确。 第二个问题是,您必须使用:

class Start\u BirthdayVC:UIViewController{…}
你必须发布
Start\u BirthdayVC

您的代码可能会在运行时崩溃,因为您使用了隐式展开可选(感叹号)


通常,像
firstNameText
这样的UI项不在初始值设定项中定义。检查它并发布您的代码。

您必须访问Start\u BirthdayVC的实例,这是在线程中回复的

所以试着改变

dateOfBirth = String(Start_BirthdayVC().datePicker.date) //Error here


您的代码即使编译了,也不会执行您想要的操作,因为您正在分配视图控制器的新实例;您需要让视图控制器更新您的模型,而不是让您的模型尝试从视图控制器获取数据,这要求您的模型具有对实际VC实例的引用。您标记的行不应给出该错误。我怀疑您的问题在其他行中,但根据我的第一条评论,此代码不是您要查找的代码
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let startBirthdayVC = storyboard.instantiateViewController(withIdentifier: "Start_BirthdayViewController") as! Start_BirthdayVC
//access startBirthdayVC properties