Это работает на 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
Есть идеи?
Кажется, я не могу найти причину, по которой эта штука не работает ...