通过类函数从另一个Swift文件执行Segue

时间:2015-02-02 19:45:59

标签: ios swift

如果它所持有的类没有连接到viewController,我如何使用我实现的类函数来执行segue?

2 个答案:

答案 0 :(得分:7)

为了执行segue,您需要segue源自的视图控制器实例 - 例如:

class MyViewController {
}

class MyClass {
    showNextView(fromViewController: UIViewController) {
        fromViewController.performSegueWithIdentifier("segue_id", sender: fromViewController)
    }
}

但是我不鼓励这种互动。不要告诉视图控制器如何显示视图 - 让它自己做,然后问它。

所以,我建议在视图控制器中创建一个实例方法:

class MyViewController {
    ...
    func goToNextView() {
       performSegueWithIdentifier("segue_id", sender: self)
    }
}

并使用它来进行转换:

class MyClass {
    showNextView(fromViewController: MyViewController) {
        fromViewController.goToNextView()
    }
}

答案 1 :(得分:1)

您可以使用“performSegueWithIdentifier”指示当前可见的视图控制器进行segue。

您显然需要引用可见控制器。

在方法内使用:

currentViewController.performSegueWithIdentifier("push", sender: currentViewController)