[英]How to present view controller from right to left in iOS using Swift
[英]how can i show retrieved data from database in not a present view controller but another one in ios with using swift
我正在主视图控制器中创建数据库,现在我想将其存储的数据检索到下一个视图控制器中,但是我不知道,任何人都可以给我答案。
一个代码块:
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let filemgr = NSFileManager.defaultManager()
let dirPaths =
NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
.UserDomainMask, true)
let docsDir = dirPaths[0]
let path = (docsDir as NSString).stringByAppendingPathComponent("contacts.db")
databasePath = path
if !filemgr.fileExistsAtPath(databasePath as String) {
let contactDB = FMDatabase(path: databasePath as String)
if contactDB == nil {
print("Error: \(contactDB.lastErrorMessage())")
}
if contactDB.open() {
let sql_stmt = "CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)"
if !contactDB.executeStatements(sql_stmt) {
print("Error: \(contactDB.lastErrorMessage())")
}
contactDB.close()
} else {
print("Error: \(contactDB.lastErrorMessage())")
}
}
}
使用此代码,我制作了数据库,但是如何再次在下一个视图控制器中检索其数据,我不在同一页面上重复另一页,所以我想显示此页面。
不要在视图控制器中而是在应用程序委托中实现数据库。
例:
// declare global database
var myGlobalDB:FMDatabase?
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// do your database init stuff here
...
myGlobalDB = FMDatabase(path: databasePath as String)
...
}
您的myGlobalDB将可在任何地方使用。
如果您想将数据推送到下一个ViewController,迈克尔说的是正确的,请使用segue。
如果创建变量以将数据保存在SecondViewController中:
var database : FMDatabase?
并在您的prepareForSegue
:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "YourIdentifier" {
if let vc = segue.destinationViewController as? SecondViewController {
vc.database = self.contactDB
}
}
}
更改as? SecondViewController
as? SecondViewController
为Second View Controller的类名,然后将"your identifier"
更改为用于切换到Second View Controller的segue标识符。 如果仅使用1个segue,则不是必需的,但是使用是一种好的做法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.