在 ViewController 之间传递 NSString

Passing NSString between ViewControllers

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

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

    thirdVC.databasePath = databasePath
}

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

我总是得到 nil

在来自ViewController 的数据库路径是在这里声明的。这为我创建了一个 SQL 数据库,我可以用它来存储用户输入的信息。

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

    let docsDir = dirPaths[0] as String

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

databasePath携带相关信息查找数据库存放位置

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

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

根据你的问题,我了解到你想将 'databasePath' NSString 传递给 "thirdVC: ThirdViewController",以及如何在 'ThirdViewController' 中声明此变量以访问其传递的值,

那么你做的很好只是你必须声明相同的名称变量即 databasePath 及其数据类型即 NSString 并在任何需要它的值的地方使用它,只需确保在视图控制器之后调用 'ThirdViewController' ,也就是传值。

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

希望你能得到答案:)