从不是View Controller的类导航到View Controller

时间:2015-02-19 13:26:47

标签: ios swift

我有一个类名“DatabaseHandler.swift”,但它不是UIViewController。我想从我的“DatabaseHandler.swift”转到View Controller

我该怎么做?

编辑: 我的DatabaseHandler就像这样初始化 -

    class DatabaseHandler: NSObject {
    let sharedInstance = DatabaseHandler()
    var database: FMDatabase? = nil
    class var instance:DatabaseHandler{
        sharedInstance.database = FMDatabase(path: Utils.getPath("DataBaseDemo.sqlite"))
        var path = Utils.getPath("DataBaseDemo.sqlite")
        println("path : \(path)")

        sharedInstance.database!.open()
.
.
.
.
.
.


    }
    }

1 个答案:

答案 0 :(得分:1)

您可以创建一个协议,您可以告诉当前视图控制器打开下一个视图控制器。 在class DatabaseHandler

之前写下这个
protocol DatabaseHandlerDelegate{
    func shouldSwitchToNewView()
}

然后在类中声明一个变量:

var delegate: DatabaseHandlerDelegate?

当你想切换视图时,请转到:

delegate?.shouldSwitchToNewView()

然后,在视图控制器中,符合class行中的协议:

class MyVC: UIViewController, DatabaseHandlerDelegate{}

在VC中实现该功能:

func shouldSwitchToNewView(){
// Switch here!
}

然后,剩下要做的就是将你设置为viewDidLoad()中的代表:

let handler = DatabaseHandler()

override func viewDidLoad(animated: a){
    super.viewDidLoad(animated: a)
    handler.delegate = self
}