2016-05-30 83 views
0

我想在登錄視圖控制器中進行用戶登錄時,將電子郵件保存並顯示爲滑出菜單視圖控制器,但滑出菜單在構建和運行時首先顯示。所以變量不包含任何內容,因爲用戶還沒有在登錄視圖控制器中登錄。使用這種聲明在文本字段中的文本電子郵件填寫將數據移動到另一個視圖控制器,但第二個視圖控制器在第一個視圖控制器之前加載第一個視圖控制器

let emailFill:String = self.emailTextfield.text! 

,並使用

self.labelContainEmail = emailFill 

的labelContainEmail是在頂部

var labelContainEmail: String = "" 

我」一個全局變量

IM m使用準備for 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的中

NSUserDefaults.standardUserDefaults().setObject(labelContainEmail , forKey: "email") // save user email 
在slideOutMenu.swift

爲賽格瑞存儲電子郵件準備和嘗試在視圖與更改標籤文本迅速

+1

看不懂你的問題!你想要什麼? – Lion

回答

1

做負載

if (NSUserDefaults.standardUserDefaults().objectForKey("email")) == nil 
{ 
    NSUserDefaults.standardUserDefaults().setObject("" , forKey: "email") 
} 
else 
{ 
    let emailStr = NSUserDefaults.standardUserDefaults().objectForKey("email") as! String 
} 
+0

謝謝!你太棒了! –

+0

好的總是歡迎 –

0

您可以在上面使用該行

**第二個視圖

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 
    } 
} 

我希望它會幫助你其他明智的,你可以使用模型類也更好的方式進行傳遞數據。

相關問題