Ich hatte diesen Code gestern perfekt funktioniert, und das einzige, was ich seit damals geändert habe, ist eine andere Tabellenansicht als Root-Tabellenansicht setzen und einen Übergang von seinen Zellen in diese VC und plötzlich jetzt funktioniert es nicht. Vielen Dank für alle, die Ihnen helfen können!Benachrichtigungen in UIView Controller nicht feuern
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: self.view.window)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIKeyboardWillHideNotification, object: self.view.window)
}
func keyboardWillShow(sender: NSNotification) {
guard let userInfo: [NSObject: AnyObject] = sender.userInfo,
keyboardSize: CGSize = userInfo[UIKeyboardFrameBeginUserInfoKey]?.CGRectValue.size,
offset: CGSize = userInfo[UIKeyboardFrameEndUserInfoKey]?.CGRectValue.size else { return }
if keyboardSize.height == offset.height {
if self.view.frame.origin.y == 0 {
UIView.animateWithDuration(0.1, animations: {() -> Void in
self.view.frame.origin.y -= keyboardSize.height
})
}
} else {
UIView.animateWithDuration(0.1, animations: {() -> Void in
self.view.frame.origin.y += keyboardSize.height - offset.height
})
}
}
func keyboardWillHide(sender: NSNotification) {
guard let userInfo: [NSObject: AnyObject] = sender.userInfo,
keyboardSize: CGSize = userInfo[UIKeyboardFrameBeginUserInfoKey]?.CGRectValue.size else { return }
self.view.frame.origin.y += keyboardSize.height
}
override func viewWillDisappear(animated: Bool) {
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIKeyboardWillShowNotification, object: self.view.window)
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIKeyboardWillHideNotification, object: self.view.window)
}
Warum verfolgen Sie nicht zurück, was Sie gestern gearbeitet haben ...? –
Ich tat, es ist in der Frage enthalten. –
Wird 'viewDidLoad' aufgerufen? –