 <p>Your logic seams correct to me. But I wonder about a possible problem with registering for a <code>UIKeyboardWillHideNotification</code> every time your <code>viewWillAppear</code>. Try to register only once in <code>viewDidLoad</code> and unsubscribe in <code>dealloc</code>. I am thinking that maybe when you register again after you dismiss the modal view the Notification Center sends you an old notification. If you register once for a notification you will not get it more then it is posted.</p>