我需要在两个视图控制器之间传递变量(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上没有这个值。
如何定义变量,或在接收控制器中写入接收语句以使其保持其值?
答案 0 :(得分:1)
根据您的问题,我的理解是您希望传递数据路径' NSString到" thirdVC:ThirdViewController",以及如何在' ThirdViewController'中声明这个变量访问其传递的值,
然后你做的很好,只需要声明相同的名称变量,即databasePath及其数据类型,即NSString,并在需要其值时使用它,只需确保' ThirdViewController'在视图控制器之后调用,即传递值。
注意:ThirdViewController应该是传递值的viewcontroller类的子类。
我希望你得到答案:))