У меня проблема, похожая на вопрос Энтони Чана , и после попытки каждого предложенного решения я все еще застрял.
Почему-то, только после взаимодействия с моим UIAlertView, яЯ не могу отклонить клавиатуру в другом представлении моего приложения.Как будто Alert нарушает способность моего UITextField к resignFirstResponder.Ниже я создаю экземпляр своего UIAlertView, который затем вызывает его метод didDismissWIthButtonIndex.Затем я вызываю метод showInfo, который загружает другой UIViewController.
UIAlertView *emailFailAlert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"error message text."
delegate:self
cancelButtonTitle:@"Not now"
otherButtonTitles:@"Settings", nil];
[emailFailAlert setTag:2];
[emailFailAlert show];
[emailFailAlert release];
Когда нажата опция «Настройки», я вызываю этот метод:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if ([alertView tag] == 2) {
if (buttonIndex == 1){
[self showInfo:nil];
}
}
}
Мой метод showInfo загружает другой ViewController с помощью кода ниже:
- (IBAction)showInfo:(id)sender {
FlipsideViewController *fscontroller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
fscontroller.delegate = self;
fscontroller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:fscontroller animated:YES];
[fscontroller release];
}
После нажатия любого текстового поля в этом Flipside VC я не могу отклонить клавиатуру, как обычно, с помощью - (BOOL)textFieldShouldReturn:(UITextField *)textField
и [textField resignFirstResponder]
.Я пропустил этот код, потому что этот вопрос становится длинным, но я рад опубликовать его в случае необходимости.
Интересная часть заключается в том, что если я закомментирую вызов [self showInfo:nil]
, сделанный при нажатии кнопки, ивызовите его, нажав кнопку тестирования (за пределами alertView didDismissWithButtonIndex: метод), все работает нормально.Есть идеи, что здесь происходит?
Заранее спасибо!