Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 通过扩展添加时,UIViewController的便利初始化不出现_Ios_Swift - Fatal编程技术网

Ios 通过扩展添加时,UIViewController的便利初始化不出现

Ios 通过扩展添加时,UIViewController的便利初始化不出现,ios,swift,Ios,Swift,我希望通过扩展向UIViewController添加一个方便的initilizer,因为我希望所有UIViewController/UIViewController子类都可以访问它。但是当我添加它时,它不会出现在可用initilizers的下拉列表中,如果我尝试使用它,我会得到一个错误,在调用中说缺少参数标签'coder: extension UIViewController { convenience init(test: String) { self.init(nibName:

我希望通过扩展向UIViewController添加一个方便的initilizer,因为我希望所有UIViewController/UIViewController子类都可以访问它。但是当我添加它时,它不会出现在可用initilizers的下拉列表中,如果我尝试使用它,我会得到一个错误,在调用中说
缺少参数标签'coder:

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
有什么办法可以让它发挥作用吗


我可以将便利initilizer添加到其他UIKit类中,并使它们显示为可用的init。

工作正常,因为您可以检查并匹配代码,可能需要删除派生数据:

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)
    }
}

看起来很好,试着清洁和建造是的,在操场上也做了同样的事情,并按预期工作。发现了问题。我有一个剩余的
required init
,它仍然在我的视图控制器中,因此编译器迫使我进行检查。是的,你必须删除它