调用viewDidAppear中的beginFirstResponder()之后,iOS键盘显示和隐藏

时间:2018-12-04 08:58:03

标签: ios swift uiview swift4

因此,我正在使用Hero(iOS的segue框架)过渡到新的ViewController

每当我进行转换时,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)
    });
}

0 个答案:

没有答案