Here is what I did to solve my problem. I checked to see what the last character was they typed in to the search field and determined the UIKeyboardType based on that:
if ([searchText length]>0) {
NSRange nond = [[searchText substringFromIndex:[searchText length]-1] rangeOfCharacterFromSet:[[NSCharacterSet lowercaseLetterCharacterSet] invertedSet]];
if (NSNotFound == nond.location) {
self.currentKeyboardType = UIKeyboardTypeDefault;
} else {
self.currentKeyboardType = UIKeyboardTypeNumberPad;
}
}
Then after the search completes I set the UIKeyboardType to this value. It seems to me that by default my app was switching the keyboard back based on the default keyboard I had set for the UISearchBar text field. This is working great for me.