Я новичок в разработке с быстрым и не знаю, как решить мою проблему. У меня есть две точки зрения. Один для signUp и один для signIn. Я добавил следующие функции в мои контроллеры просмотра, и все работает нормально. Когда я нажимаю на каждый textField (для пароля, имя пользователя), представление перемещается вверх при появлении клавиатуры. Но когда я подписываюсь на пользователя, и после этого вызова «Часть 2» моего кода и Пользователь вошел в систему, вид меняется с моего signInView на мой signUpView. Проблема: после того, как я сделал следующие шаги и сейчас на вкладке textFields, клавиатура больше не отображается.быстрый вид движения при появлении клавиатуры - ошибка
Часть 1: Код в signInViewController:
var kbHeight: CGFloat!
override func viewDidLoad() {
super.viewDidLoad()
textFieldUserName.delegate = self
txtFieldUserPassword.delegate = self
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
txtFieldUserPassword.resignFirstResponder()
return true
}
//viewDidAppear or viewWillAppear?
override func viewDidAppear(animated:Bool) {
super.viewWillAppear(animated)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
NSNotificationCenter.defaultCenter().removeObserver(self)
}
func keyboardWillShow(notification: NSNotification) {
if let userInfo = notification.userInfo {
if let keyboardSize = (userInfo[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
kbHeight = keyboardSize.height-50
self.animateTextField(true)
}
}
}
func keyboardWillHide(notification: NSNotification) {
self.animateTextField(false)
}
func animateTextField(up: Bool) {
let movement = (up ? -kbHeight : kbHeight)
UIView.animateWithDuration(0.3, animations: {
self.view.frame = CGRectOffset(self.view.frame, 0, movement) //Fatal Error: nil sometimes? - Why?
})
}
Часть 2: Код в signInViewController
do {
try signup.signUpUser()
self.showAlert(self)
} catch ...
func showAlert(viewController : UIViewController) -> Void {
let alertController = UIAlertController(title: "Registrieren erfolgreich", message: "Sie können sich jetzt Anmelden", preferredStyle: .Alert)
alertController.addAction(UIAlertAction(title: "Anmelden", style: .Default, handler: { (alertAction) -> Void in self.dismissViewControllerAnimated(true, completion: nil) }))
viewController.presentViewController(alertController, animated: true, completion: nil)
Это действительно не помогает мне .. это объективный код c, и представление движется динамически. я хочу сказать сам, насколько должна двигаться точка зрения – BEm