I think your problem comes from the order in which the textField methods are called when you edit the text screen and directly click on another.
If I'm not mistaken, it should be something like this (you are editing A and clicking on B)
textFieldShouldBeginEditing for field BtextFieldShouldEndEditing for field AtextFieldDidEndEditing for field AtextFieldDidBeginEditing for field B
, textFieldShouldEndEditing, B . , UIAlertView, B , , textFieldShouldEndEditing !
, , textField . , , , boolean, , .
TRUE textFieldShouldBeginEditing FALSE textFieldDidBeginEditing. textFieldShouldEndEditing, TRUE, , . (, EndEditing false - ).