通过扩展名

时间:2018-04-30 18:37:21

标签: ios swift

我想通过扩展程序向UIViewController添加一个方便的启动器,因为我希望所有UIViewControllers / UIViewController子类都可以访问它。但是当我添加它时,它并没有出现在可用的启动器的下拉列表中,如果我尝试使用它,我会收到错误Missing argument label 'coder:' in call

extension UIViewController {
   convenience init(test: String) {
   self.init(nibName: nil, bundle: nil)
   print(test)
 }

let testController = TestController(test: "Hello World!") // Missing argument label 'coder:' in call

是否有某种技巧可以让它发挥作用?

我可以将方便的启动器添加到其他UIKit类中,并将它们显示为可用的内容。

1 个答案:

答案 0 :(得分:0)

它的工作正常,因为您可以检查和匹配您的代码,也许您需要删除派生数据:

extension UIViewController {
    convenience init(test: String) {
        self.init(nibName: nil, bundle: nil)
        print(test)
    }
}

class SecondViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var textf: UITextField!
    var doubleValue: Double?

    override func viewDidLoad() {
        super.viewDidLoad()
        let testController = SecondViewController(test: "ffwfew")
        print(testController)
    }
}