在另一个viewController中调用类方法

时间:2016-02-08 03:01:09

标签: ios swift class-method

我有一个类似下面的课程

Class ViewControlelr: UIViewController {
    func instantiateDocumentSubPartNavigationVC(documentPart: DocumentPart, documentPartsArray: [DocumentPart]) {
//definition
}
}

在其他名为ViewController2的类中,我想调用上面的方法。 我期望在下面看到,所以我可以将参数传递给ViewController2中的方法

ViewController.instantiateDocumentSubPartNavigationVC(documentPart: DocumentPart, documentPartsArray: [DocumentPart])

但我实际看到的是

ViewController.instantiateDocumentSubPartNavigationVC(ViewController)

如何在不同的类中成功使用类方法?

1 个答案:

答案 0 :(得分:2)

可以声明函数在两个级别之一(类或实例)中运行。当你调用一个函数时,你必须正确匹配。

目前您的代码有ViewController.instantiateDocumentSubPartNavigationVC,而ViewController是一个类,而不是类的实例。这与声明在实例上运行的函数不匹配(因为它没有关键字classstatic)。

因此,您需要使用ViewController的实例(可能viewController只有一点'),或者使用class声明该函数。选择取决于您尝试做什么,但它很可能是第一个选择。

这就是为什么你的问题被标记为重复的原因 - 因为你看起来想要从另一个类级函数调用一个类级函数,但我怀疑它不是你所追求的。