Ios 通过prepareForSegue传递NSString-Swift

Ios 通过prepareForSegue传递NSString-Swift,ios,uiviewcontroller,swift,segue,modalviewcontroller,Ios,Uiviewcontroller,Swift,Segue,Modalviewcontroller,我试图通过使用prepareforsgue方法将字符串传递给我的模式视图控制器,如下图所示。见下文: 这是我的初始视图控制器,我将在其中显示模态视图: override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { if segue.identifier == "newProject" { var newProjectVC:ModalViewCont

我试图通过使用prepareforsgue方法将字符串传递给我的模式视图控制器,如下图所示。见下文:

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

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    
    if segue.identifier == "newProject" {
        var newProjectVC:ModalViewController = ModalViewController()
        newProjectVC = segue.destinationViewController as ModalViewController
        newProjectVC.testString = "hello"
    }
}
这是我的模态视图控制器:

import UIKit

class ModalViewController: UIViewController {
    
    var testString:NSString!
    
    override func viewDidLoad() {
        println(self.testString)
    }
}
下面是它在情节提要中的外观:

问题是它在这一行抛出了一个异常:

    newProjectVC = segue.destinationViewController as ModalViewController

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

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

let navigationController = segue.destinationViewController as UINavigationController
let newProjectVC = navigationController.topViewController as ModalViewController
newProjectVC.testString = "hello"

谢谢,不过我现在似乎又在这一行上抛出了一个异常:让newProjectVC=navigationController.viewControllers[0]作为NewProjectViewController。请发布异常。我已经编辑了我的帖子-它在日志中没有吐出任何有意义的内容-只是停留在上面的一行。请参阅我编辑的帖子我使用topViewController,如果它会崩溃,请尝试:navigationController?。topViewController谢谢,我尝试了你的两个建议,但它仍然会引发相同类型的异常