Passing Values to UIViewController in new Storyboard - Swift
11,224
You are creating a new instance of NewViewController
with this line
let newViewController:NewViewController = NewViewController()
Instead assign variables and delegate to vc
which you have instantiated from StoryBoard
var storyboard : UIStoryboard = UIStoryboard(name: StoryboardName, bundle: nil)
// It is instance of `NewViewController` from storyboard
var vc : NewViewController = storyboard.instantiateViewControllerWithIdentifier(NewViewController) as NewViewController
// Pass delegate and variable to vc which is NewViewController
vc.createAccountDelegate = self
vc.teststring = "hello"
vc.transitioningDelegate = self
vc.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
self.presentViewController(vc, animated: true, completion: nil)
Author by
Ryan
Updated on July 24, 2022Comments
-
Ryan almost 2 years
I am trying to pass values to a new view controller - located within a new storyboard file. However when I do so, the result I get from the NewViewController is always nil.
Below is how I show the view controller within the new storyboard:
// Show create account page with custom transition var storyboard : UIStoryboard = UIStoryboard(name: StoryboardName, bundle: nil) var vc : UIViewController = storyboard.instantiateViewControllerWithIdentifier(NewViewController) as UIViewController
I try to send the information here:
// Pass the delegate to the first view controller let newViewController:NewViewController = NewViewController() newViewController.createAccountDelegate = self newViewController.teststring = "hello"
And then present the view controller.
vc.transitioningDelegate = self vc.modalTransitionStyle = UIModalTransitionStyle.CoverVertical self.presentViewController(vc, animated: true, completion: nil)
Here is my NewViewController, where I try to receive the values. However end up still being nil.
import UIKit class NewViewController: UIViewController { var createAccountDelegate:AccountCreationDelegate! var teststring:NSString! override func viewDidLoad() { super.viewDidLoad() }
Am I sending the values incorrectly?
-
Ali almost 8 yearswhy this is happening though it was working before and now very strange behaviour