[英]ios Delegate Objective-c data sending from 2nd view controller to 1st view controller
[英]move data to another view controller, but the 2nd view controller load first before 1st view controller
我想在用户登录登录视图控制器时进行创建,保存并显示电子邮件以滑出菜单视图控制器,但是在构建和运行时首先显示滑出菜单。 因此该变量不包含任何内容,因为用户尚未在登录视图控制器中登录。
我用它来声明文本字段中的文本是电子邮件填充
let emailFill:String = self.emailTextfield.text!
和使用
self.labelContainEmail = emailFill
labelContainEmail是顶部的全局变量
var labelContainEmail: String = ""
我正在使用像这样准备segue来移动数据
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "yolo"
{
let vc = segue.destinationViewController as! SlideOutMenu
vc.labelContainEmail2 = labelContainEmail
print(vc.labelContainEmail2) // this don't print anything, but when i print under `self.labelContainEmail = emailFill` it printed out the email
}
}
在slideOutMenu.swift中,我在顶部有这个变量
var labelContainEmail2: String = ""
并尝试更改标签文本
labelEmail.text = labelContainEmail2
在视图中是否加载
我该怎么办? 请放轻松,我是新手
在NSUserDefaults中使用为segue存储电子邮件做准备
NSUserDefaults.standardUserDefaults().setObject(labelContainEmail , forKey: "email") // save user email
在slideOutMenu.swift中并尝试更改视图中的标签文本
if (NSUserDefaults.standardUserDefaults().objectForKey("email")) == nil
{
NSUserDefaults.standardUserDefaults().setObject("" , forKey: "email")
}
else
{
let emailStr = NSUserDefaults.standardUserDefaults().objectForKey("email") as! String
}
您可以在此行的顶部使用
**第二视图
class SlideOutMenu: UIViewController {
var labelContainEmail: String?
//your code here
}
从第一个视图转到第二个视图的位置。
**使用第一视图
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "yolo"
{
let vc = segue.destinationViewController as! SlideOutMenu
vc.labelContainEmail2 = labelContainEmail
print(vc.labelContainEmail2) // this don't print anything, but when i print under `self.labelContainEmail = emailFill` it printed out the email
}
}
我希望它能对您有所帮助,您也可以使用模型类来传递数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.