我目前正在编写一个带有两个故事板的应用程序。一个情节提要是一个入门情节提要,我在其中从用户那里获取关键信息以运行该应用程序。另一个是主应用程序。如何创建两个情节提要都可以操纵和访问的变量?我正在使用Swift。
答案 0 :(得分:0)
据此post在Stackoverflow中
var storyboard = UIStoryboard(name: "IDEInterface", bundle: nil)
var controller = storyboard.instantiateViewControllerWithIdentifier("IDENavController") as! MyCustomViewController
controller.exercisedPassed = "Ex1"
self.presentViewController(controller, animated: true, completion: nil)
答案 1 :(得分:0)
我倾向于在使用 UserDefaults 和通过 prepareForSegue 发送数据之间往返
UserDefaults指南:Setting And Getting Data With UserDefaults In Swift
prepareForSegue示例:stackoverflow prepareForSegue sample
使用prepareForSegue,在将接收数据的目标ViewController中创建空变量,然后在源视图控制器的prepareForSegue函数中进行设置。
示例
class DestinationViewController: UIViewController{
var value1: String!
var value2: Int!
}
//SWIFT 4
class OriginViewContoller: UIViewContoller{
override func prepare(for segue: UIStoryboardSegue, sender: Any?){
switch(segue.identifier){
case "SEGUE_IDENTIFIER_HERE":
let vc = segue.destination as! DestinationViewController
vc.value1 = "Some String"
vc.value2 = 1234
}
}
}
如果我使用UserDefaults跟踪重要的用户数据,请确保在用户注销时从UserDefaults中删除此数据
示例
UserDefaults.standard.removeObject(forKey: "SOME_KEY_IDENTIFIER_HERE")