2015-01-14 2 views
1

Как добавить значение к переменной в классе myClass2 из другого класса myClass в swift?Как установить значение переменной в другом классе в Swift

Я уже пробовал что-то вроде myClass2().myvariable = "value", но это не сработало; мое значение переменной по-прежнему nil. вот код:

myViewController2:

import UIKit 

class MyViewController2: UIViewController { 

    var myVariable : String?; 

    @IBOutlet weak var display: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    @IBAction func showPressed(sender: AnyObject) { 
     display.text = myVariable; 
    } 

} 

ViewController:

import UIKit 

class ViewController: UIViewController { 

    let myClassInstance = myViewController2(); 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    @IBAction func toView2Pressed(sender: AnyObject) { 

     let view2 = self.storyboard?.instantiateViewControllerWithIdentifier("view2") as myViewController2; 
     self.navigationController?.pushViewController(view2, animated: true); 
     myClassInstance.myVariable = "my new value"; 
    } 

} 
+0

'var myVariable: String?;' Не должно иметь точку с запятой – krummens

ответ

4

Вы создаете экземпляр myViewController2 называется MyCLASS экземпляр, но это не случай, что вы нажимаете на стек - - нажатие экземпляра - view2. Таким образом, последняя строка в toView2Pressed должно быть,

view2.myVariable = "my new value" 

Вы должны удалить строку, пусть myClassInstance = myViewController2(). Это нецелесообразно. Вы также должны начинать имена классов с большой буквы.

Смежные вопросы