在ViewControllers之间传递NSString

时间:2015-02-20 14:29:08

标签: swift uiviewcontroller nsstring segue

我需要在两个视图控制器之间传递变量(databasePath - 这是NSString)。 在from控制器中,我编码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    var thirdVC: ThirdViewController = segue.destinationViewController as ThirdViewController

    thirdVC.databasePath = databasePath
}

如何定义变量,或在接收控制器中写入接收语句?

我总是得到nil

在from ViewController中,这里声明了databasePath。这创建了一个SQL数据库,我可以用它来存储用户输入的信息。

    let filemgr = NSFileManager.defaultManager()
    let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
        .UserDomainMask, true)

    let docsDir = dirPaths[0] as String

    databasePath = docsDir.stringByAppendingPathComponent("contacts.db")

databasePath包含相关信息以查找数据库的存储位置。

在ThirdViewController上我设置了它,以便您可以查看数据库中存储的内容。 代码没有错误。 我使用println("\(databasePath)")发现在ThirdViewController上没有这个值。

如何定义变量,或在接收控制器中写入接收语句以使其保持其值?

1 个答案:

答案 0 :(得分:1)

根据您的问题,我的理解是您希望传递数据路径' NSString到" thirdVC:ThirdViewController",以及如何在' ThirdViewController'中声明这个变量访问其传递的值,

然后你做的很好,只需要声明相同的名称变量,即databasePath及其数据类型,即NSString,并在需要其值时使用它,只需确保' ThirdViewController'在视图控制器之后调用,即传递值。

注意:ThirdViewController应该是传递值的viewcontroller类的子类。

我希望你得到答案:))