Удобный init для UIViewController не появляется при добавлении через расширение - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу добавить вспомогательный инициализатор в 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 голосов
/ 30 апреля 2018

Работает нормально, вы можете проверить и сопоставить свой код, возможно, вам нужно удалить производные данные:

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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...