【发布时间】:2015-02-20 14:29:08
【问题描述】:
我需要在两个视图控制器之间传递一个变量(databasePath - 这是一个NSString)。
在我编码的控制器中:
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 上没有任何价值。
如何定义变量,或在接收控制器中编写接收语句以使其保持其值?
【问题讨论】:
-
源 VC 中维护的 databasePath 变量在哪里?您是否已将 databasePath 声明为目标 VC 中的属性?
-
是的,此时
databasePath是什么?如果设置断点,或者打印databasePath是否正确?您编写的代码看起来应该可以工作,但如果没有更大的图景,我们无法确定。 -
我将编辑问题以尝试回答您的问题。
-
我希望我的编辑可以帮助您理解我遇到的问题。任何帮助将不胜感激。
标签: swift uiviewcontroller nsstring segue