我在ViewController中存储SimpleClass中的值,而我正在使用Secondview类。但我无法从SecondClass中的SimpleClass获取值。帮我 谢谢
答案 0 :(得分:0)
它不起作用的原因是因为在SecondClass
中您正在创建SimpleClass
的新实例。
您真正想要做的是将SimpleClass
实例从ViewController
传递到SecondClass
。
执行此操作的一种方法是在“ViewController”
中使用prepareForSegue
方法
on ViewController.swift
:
import UIKit
class ViewController: UIViewController {
var simObject:SimpleClass?
override func viewDidLoad() {
super.viewDidLoad()
self.title = "First Class";
simObject = SimpleClass()
simObject!.userName = "damu";
simObject!.userPassword = "123";
simObject!.address = "344r";
print(simObject!.address)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// pass the simObject to secondClass
if let secondClass = segue.destinationViewController as? SecondClass {
secondClass.simpleClass = simObject
}
}
}
在SeconClass.swift
import UIKit
class SecondClass: UIViewController {
var simpleClass:SimpleClass?
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Second Class";
if let passedSimpleClass = self.simpleClass {
println(passedSimpleClass.address)
}
}
}
答案 1 :(得分:0)
如果您想要从ViewController到SecondView的值,您必须实现
覆盖func prepareForSegue(segue:UIStoryboardSegue?,发件人: AnyObject?)
当您转到Secondview时,您正在获取temp.username的正确值,该值在日志中显示为nil。这是因为您正在创建一个SimpleClass的新实例,其变量初始化为nil。