在新的Storyboard中将值传递给UIViewController - Swift

Rya*_*yan 8 delegates uiviewcontroller ios 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
Run Code Online (Sandbox Code Playgroud)

我尝试在这里发送信息:

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

然后呈现视图控制器.

vc.transitioningDelegate = self
vc.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
self.presentViewController(vc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

这是我的NewViewController,我尝试接收值.但最终仍然是零.

import UIKit

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

    override func viewDidLoad() {
        super.viewDidLoad()
    }
Run Code Online (Sandbox Code Playgroud)

我错误地发送了这些值吗?

cod*_*ter 18

您正在NewViewController使用此行创建新实例

let newViewController:NewViewController = NewViewController()
Run Code Online (Sandbox Code Playgroud)

而是分配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)
Run Code Online (Sandbox Code Playgroud)