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