因此,我正在使用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)
});
}