2016-06-11 39 views
0

我有一個NSUserDefault全部設立在我的viewController,這是它的一部分在viewDidLoad中PrepareForSegue斯威夫特

if (txt1TotalDefault.valueForKey("TextField1Total") != nil){ 
      TextField1Total = txt1TotalDefault.valueForKey("TextField1Total") as! Double 
      let T1Total = NSString(format: "TextField1Total: %i", TextField1Total) 
    } 

然後,我的所有代碼的底部有一個賽格瑞

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     var DestViewController : SecondViewController = segue.destinationViewController as! SecondViewController 

     DestViewController.TotalMoneyLabel.text = T1Total} 

但它不會工作,因爲它不承認T1Total,我如何得到它來識別它或將它從if語句中取出,以便它可以正確讀取值

+0

'T1Total'應該是類變量。在你的情況下,它的方法變量,因爲'T1Total'不能在'prepareForSegue'方法中訪問。 –

+0

有沒有辦法使PrepareForSegue中的T1Total可訪問? –

+0

有沒有辦法將它從if語句中取出並讓它進入segue? –

回答

0

T1Total應該是類變量。在你的情況下,它的方法變量,因爲這個T1Total是不可訪問的prepareForSegue方法。

僞碼

Class yourclass 
{ 
    var T1Total = "" 
    override func viewDidLoad() 
    { 
     if (txt1TotalDefault.valueForKey("TextField1Total") != nil){ 
      TextField1Total = txt1TotalDefault.valueForKey("TextField1Total") as! Double 
      T1Total = NSString(format: "TextField1Total: %i", TextField1Total) 
     } 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     var DestViewController : SecondViewController = segue.destinationViewController as! SecondViewController 

     DestViewController.TotalMoneyLabel.text = T1Total 
    } 
} 

使用此代碼T1Total將訪問在prepareForSegue

+0

好吧,我現在沒有錯誤,但它沒有改變標籤文本 –

+0

將文本傳遞給'DestViewController'並在'DestViewController'的'viewDidLoad()'方法內設置文本。 –

+0

所以我將我的SecondViewController的viewdidload設置爲viewController中的segue中的相同文本? –