将字符串分配给另一个视图控制器中的文本字段
Posted
技术标签:
【中文标题】将字符串分配给另一个视图控制器中的文本字段【英文标题】:Assign strings to textfields in another view controller 【发布时间】:2017-04-17 14:11:52 【问题描述】:我正在尝试获取 facebook 值,例如姓名和电子邮件,并将它们传输到另一个视图控制器,在那里它们填充相应的文本字段。但是,当我尝试使用此代码填充文本字段时
let fbEmail = data["email"]
let fbName = data["name"]
func prepare(for segue: UIStoryboardSegue, sender: Any?)
let vc = segue.destination as? CreateAccountVC
vc!.emailTxt = self.fbName
vc!.fullnameTxt = self.fbEmail
我收到一条错误消息,提示“无法将类型 String 分配给 UITextField 类型!”我在这里很困惑,因为我认为文本字段只接受字符串(我对编码/编程很陌生)。
所以基本上,我如何在一个视图控制器中收集这些值以填充另一个视图控制器中的文本字段?任何帮助将不胜感激!谢谢!
【问题讨论】:
【参考方案1】:错误原因是您需要将其分配给UITextField
的文本属性。
您也可以使用变量来设置它们。并在您的CreateAccountVC
控制器的viewDidLoad
函数中设置textfield
的值。像这样:
您的第一个控制器用于获取 facebook 值:
let fbEmail = data["email"]
let fbName = data["name"]
func prepare(for segue: UIStoryboardSegue, sender: Any?)
if let vc = segue.destination as? CreateAccountVC
vc.emailTxtValue = self.fbName
vc.fullnameTxtValue = self.fbEmail
你的 CreateAccountVC :
class CreateAccountVC: UIViewController
var emailTxtValue:String?
var fullnameTxtValue:String?
override func viewDidLoad()
super.viewDidLoad()
emailTxt.text = emailTxtValue
fullnameTxt.text = fullnameTxtValue
【讨论】:
哇,不敢相信我没听懂。但是,我只是尝试过,但没有填充文本字段。我可能使用了错误的功能来执行此操作吗? 它在我的测试中有效。但是我重新排列了代码行并更新了我的答案。它对我有用,我希望它对你有用:) 仍然无法正常工作,可能与我的代码的顺序/内容有关。我可以向您展示我的全部代码吗?以上是关于将字符串分配给另一个视图控制器中的文本字段的主要内容,如果未能解决你的问题,请参考以下文章