Клавиатура IOS показывает и скрывает после вызова становитсяFirstResponder () в viewDidAppear - PullRequest
0 голосов
/ 04 декабря 2018

Итак, я перехожу на новый ViewController с Hero (segue Framework для iOS).

Всякий раз, когда я перехожу, viewDidAppear вызывается дважды в ViewController, который я перехожутоже.

У меня есть два UITextField (электронная почта и пароль), поэтому я звоню becomesFirstResponder в текстовое поле электронной почты в viewDidAppear.

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    if (!keyboardLoaded) {
        emailTextField.becomeFirstResponder()
        keyboardLoaded = true
    }
}

Я пытался использовать emailTextField.isFirstResponderвместо bool keyboardLoaded, но каким-то образом мой emailTextField теряет свой статус firstResponder.

Что может быть причиной того, что мой emailTextField уходит в отставку как firstResponder, когда я перехожу на этот новый контроллер представления?

Этокак я перехожу к новому взгляду:

@IBAction func onLoginPressed(_ sender: Any) {
    self.animateOutLoggedOutView(completion: { (isComplete: Bool) in

        let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginVC")
        loginVC.hero.isEnabled = true
        loginVC.hero.modalAnimationType = .slide(direction: HeroDefaultAnimationType.Direction.up)
        self.hero.replaceViewController(with: loginVC)
    });
}
...