在没有Segues的Storyboard之间传递variables – Swift

我在Xcode中的两个不同的.storyboard文件中的两个不同的UIViewControllers之间传递数据。 (这是一个相当大的项目,所以我不得不把它分解成不同的故事板。)

我已经在视图中build立了“exercisePassed”variables(string),我想将数据传递给我,并且我已经知道如何在位于不同故事板中的两个视图之间移动。 像这样。

var storyboard = UIStoryboard(name: "IDEInterface", bundle: nil) var controller = storyboard.instantiateViewControllerWithIdentifier("IDENavController") as! UIViewController //************************************** var ex = //Stuck Here ex.exercisedPassed = "Ex1" //************************************** self.presentViewController(controller, animated: true, completion: nil) 

如何在不使用Segue / PrepareForSegue的情况下传递数据?

我假设你想要传递数据的viewController是一个自定义viewController。 在这种情况下,在这里使用这个修改的代码:

 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 //create a variable in "IDENavController" //eg var someVariable = @"" //2 var controller = storyboard.instantiateViewControllerWithIdentifier("IDENavController") as! UIViewController controller.someVariable = [assign your variable] //3 self.presentViewController(controller, animated: true, completion: nil) 

尝试这个。 这对我有效。

 var storyboard = UIStoryboard(name: "IDEInterface", bundle: nil) var controller = storyboard.instantiateViewControllerWithIdentifier("IDENavController") as! YourDestinationViewControllername // Add your destination view controller name and Identifier // For example consider that there is an variable xyz in your destination View Controller and you are passing "ABC" values from current viewController. controller.xyz = "ABC" self.presentViewController(controller, animated: true, completion: nil) 

希望这会有所帮助。

对于那些正在寻找Swift 3/4的人的回答:

 let storyboard = UIStoryboard(name: "IDEInterface", bundle: nil) let controller = storyboard.instantiateViewController(withIdentifier: "IDENavController") as! CustomViewController controller.yourVariable = "abc" self.present(controller, animated: true, completion: nil)