Передача значений в UIViewController в Новой раскадровке-Swift

Я пытаюсь передать значения новому контроллеру вида, расположенному в новом файле раскадровки. Однако, когда я делаю так, результат я получаю от NewViewController всегда ноль.

ниже показано, как я показываю контроллер вида в новой раскадровке:

// Show create account page with custom transition
var storyboard : UIStoryboard = UIStoryboard(name: StoryboardName, bundle: nil)
var vc : UIViewController = storyboard.instantiateViewControllerWithIdentifier(NewViewController) as UIViewController

Я пытаюсь отправить эту информацию:

// Pass the delegate to the first view controller
let newViewController:NewViewController = NewViewController()
newViewController.createAccountDelegate = self
newViewController.teststring = "hello"

и затем представить контроллер представления.

vc.transitioningDelegate = self
vc.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
self.presentViewController(vc, animated: true, completion: nil)

вот мой NewViewController, где я пытаюсь получить значения. Однако в итоге все равно ничего.

import UIKit

class NewViewController: UIViewController {
    var createAccountDelegate:AccountCreationDelegate!
    var teststring:NSString!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

Я отправляю значения неправильно?

1 ответов


вы создаете новый экземпляр NewViewController строка

let newViewController:NewViewController = NewViewController()

вместо этого назначьте переменные и делегируйте vc который вы создали из 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)