我想从AppDelegate获取ViewController变量,我试过:
//1.
print(ViewController().strName)
//2.
let vc = ViewController()
print(vc.strName)
//3.
let vc = UIApplication.shared.keyWindow!.rootViewController as! ViewController
print(vc.strName)
一切都不起作用,打印值为空......
ViewController中的代码:
var strName : String = ""
override func viewDidLoad() {
strName = "Tom"
}
我建议检查此链接Swift: How to access in AppDelegate variable from the View controller?否则尝试在视图控制器中,
class ViewController: UIViewController {
var strName = "someString" // some value
}
在AppDelegate中,
var mainViewController = ViewController()
func applicationWillEnterForeground(_ application: UIApplication) {
_ = self.window?.rootViewController as? ViewController
print(mainViewController.strName)
}