繁体   English   中英

将数据移动到另一个视图控制器,但是第二个视图控制器先加载第一个视图控制器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM