我在viewController中设置了一个NSUserDefault,这是它在viewDidLoad中的一部分

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语句中删除它,以便它可以正确读取该值

最佳答案

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

10-08 05:50