Ios 通过prepareForSegue传递NSString-Swift
我试图通过使用prepareforsgue方法将字符串传递给我的模式视图控制器,如下图所示。见下文: 这是我的初始视图控制器,我将在其中显示模态视图: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
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谢谢,我尝试了你的两个建议,但它仍然会引发相同类型的异常