在没有 Segues 的 Storyboard 之间传递变量 - Swift
Passing variables between Storyboards without Segues - Swift
我在位于 Xcode 内两个不同 .storyboard 文件中的两个不同 UIViewController 之间传递数据。 (这是一个相当大的项目,所以我不得不将它分解成不同的故事板。)
我已经在我想将数据传递到的视图中建立了一个 "exercisePassed" 变量(字符串),并且我已经知道如何在位于不同情节提要中的两个视图之间移动。像这样。
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)
试试这个。这对我有用。
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)
希望这会有所帮助。
你的问题不是很清楚,据我了解
//1
//create a variable in "IDENavController"
//e.g
var someVariable = @""
//2
var controller = storyboard.instantiateViewControllerWithIdentifier("IDENavController") as! UIViewController
controller.someVariable = [assign your variable]
//3
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)
我在位于 Xcode 内两个不同 .storyboard 文件中的两个不同 UIViewController 之间传递数据。 (这是一个相当大的项目,所以我不得不将它分解成不同的故事板。)
我已经在我想将数据传递到的视图中建立了一个 "exercisePassed" 变量(字符串),并且我已经知道如何在位于不同情节提要中的两个视图之间移动。像这样。
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)
试试这个。这对我有用。
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)
希望这会有所帮助。
你的问题不是很清楚,据我了解
//1
//create a variable in "IDENavController"
//e.g
var someVariable = @""
//2
var controller = storyboard.instantiateViewControllerWithIdentifier("IDENavController") as! UIViewController
controller.someVariable = [assign your variable]
//3
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)