2016-06-11 41 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中的相同文本? –