2

我的视图类中有一个按钮,试图从单独的类中添加选择器函数,如下所示:

class ProfileView: UIView {
    createAccountButton.addTarget(self, action: #selector(ProfileViewController.createAccountClicked), for: .touchUpInside)
}

class ProfileViewController: UIViewController {
    func createAccountClicked() {
        print("button press")
    }
}

当我尝试在ProfileView. 但是,当我简单地createAccountClicked()输入ProfileView并调用时,它会起作用:

createAccountButton.addTarget(self, action: #selector(self.createAccountClicked), for: .touchUpInside)

反而。我的问题是 - 是否可以从单独的类中调用函数?或者只是在同一个类中拥有该功能是正确的设计模式?

4

1 回答 1

1

对于您的问题,请尝试更改如下代码:

class ProfileView: UIView {
    createAccountButton.addTarget(ProfileViewController, action: #selector(ProfileViewController.createAccountClicked), for: .touchUpInside)
}

是否可以从单独的类中调用函数?或者只是在同一个类中拥有该功能是正确的设计模式?

的,您可以通过声明类函数或该类的对象来从外部调用函数。检查下面的类函数

class ProfileViewController: UIViewController {
 class func someTypeMethod() {
    //body
}
}
于 2017-01-23T09:26:40.767 回答