switching inputview for uitextfield
Use this one instead:
-reloadInputViews (UIResponder)
The solution that worked for me to switch back to the default keyboard when the textField was already the first responder (keyboard on screen) was set his inputView to nil than call reloadInputViews like this:
textField.inputView = nil;
[textField reloadInputViews];
Hope this helps.
Things have changed quite a bit, since I wrote this answer way back in 2012, the recommended approach as mentioned by @yoooriii is:
myTextField.inputView = nil
myTextField.reloadInputViews()