Это работает на iPhone BTW (оба работают под управлением iOS 5.1)
Мое приложение зависает, когда я звоню [self dismissModalViewControllerAnimated:NO];
Я пробовал много разных подходов:
Мой код, как у меня сейчас:
-(void) doneEditing:(NSString *)value
{
[multiLineText dismissModalViewControllerAnimated:NO];
self.currentActiveTextView.text = value;
self.currentActiveTextView = nil;
}
- (void)textViewDidBeginEditing:(UITextView *)textView
{
multiLineText = [[MultilineTextViewController alloc] init];
multiLineText.delegate = self;
multiLineText.text = textView.text;
self.currentActiveTextView = textView;
[self presentModalViewController:multiLineText animated:NO];
}
MultilineTextViewController.h
@protocol DoneEditing
-(void)doneEditing:(NSString*)value;
@end
@interface MultilineTextViewController : UIViewController
{
UITextView *inputText;
id<DoneEditing> delegate;
}
@property (nonatomic, strong) NSString *text;
@property (nonatomic, strong) id<DoneEditing> delegate;
@end
Функция вызывается из кнопки "Готово"
-(void) done:(id)sender
{
[delegate doneEditing:inputText.text];
}
Я попытался отказаться от модального окна в моей выполненной функции. Я пробовал это в обоих местах с самим собой. Я также пробовал это в MultilineTextViewController
.
if ([[self parentViewController] respondsToSelector:@selector(dismissModalViewControllerAnimated:)]){
[[self parentViewController] dismissModalViewControllerAnimated:NO];
} else {
[[self presentingViewController] dismissViewControllerAnimated:NO completion:nil];
}
Просто немного истории, когда пользователь нажимает UITextView
, я использую, чтобы открыть новый ModalViewController
, чтобы дать пользователю больше места для ввода большого количества текста, после завершения пользователь нажимает кнопку "Готово", и я вызываю метод делегата, чтобы поместить текст в исходную форму .
Если я изменю анимацию на да в любом из приведенных выше случаев, она все равно не сработает, но вместо зависания я получаю NSInternalInconsistencyException
Attempting to begin a modal transition from <WorkflowViewController: 0xc6846b0> to <MultilineTextViewController: 0xc64b960> while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed
Любые идеи?
Кажется, я не могу найти причину, по которой эта штука не работает ...