通过prepareForSegue传递NSString - Swift

Rya*_*yan 7 uiviewcontroller modalviewcontroller ios segue swift

我正在尝试使用prepareForSegue方法将字符串传递给下面看到的我的模态视图控制器.见下文:

这是我的初始视图控制器,我将在其中呈现模态视图:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {

    if segue.identifier == "newProject" {
        var newProjectVC:ModalViewController = ModalViewController()
        newProjectVC = segue.destinationViewController as ModalViewController
        newProjectVC.testString = "hello"
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的模态视图控制器:

import UIKit

class ModalViewController: UIViewController {

    var testString:NSString!

    override func viewDidLoad() {
        println(self.testString)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是故事板中的样子:[在此输入图像描述] [1]

问题是它在这一行引发异常:

    newProjectVC = segue.destinationViewController as ModalViewController
Run Code Online (Sandbox Code Playgroud)

我有一种感觉它可能与导航控制器有关但不确定,有什么想法吗?

Gre*_*reg 13

你是对的destinationViewController是导航控制器而不是ModalViewController,尝试:

let navigationController = segue.destinationViewController as UINavigationController
let newProjectVC = navigationController.topViewController as ModalViewController
newProjectVC.testString = "hello"
Run Code Online (Sandbox Code Playgroud)