У меня есть navigationController, откуда я запускаю ModalViewController. В этом ModalViewController я покажу MailComposer, который сам является другим ModalViewController.2 ModalViewController
Теперь, если пользователь нажимает кнопку отправки, MailComposerView должен быть уволен и другим ModalViewController. Для этого я вызываю метод делегата в mailComposerController.
Теперь только MailComposerView будет уволен, но не является другой ModalViewController и я получаю следующее сообщение об ошибке
attempt to dismiss modal view controller whose view does not currently appear. self = <UINavigationController: 0x724d500> modalViewController = <UINavigationController: 0x72701f0>
У вас есть идея, что я делаю неправильно?
Первый ModalView
- (void)addList {
NSLog(@"addList");
//AddListViewController *addListViewController = [[AddListViewController alloc] init];
AddListViewController *addListViewController = [[AddListViewController alloc] initWithStyle:UITableViewStyleGrouped];
addListViewController.delegate = self;
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addListViewController];
navigationController.navigationBar.barStyle = UIBarStyleBlack;
navigationController.navigationBar.translucent = YES;
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[addListViewController release]; }
В AddListViewController вызова MailView
MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate = self;
NSString *subject = [NSString stringWithFormat:@"Group invite for groupname: %@", @"mhm"];
[mailComposer setSubject:subject];
// Fill out the email body text
NSString *emailBody = @"This is an group invite bla bla";
[mailComposer setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];
В методе mailComposerController
[self.navigationController dismissModalViewControllerAnimated:YES];
[self.delegate finishAddList:checkmark andListName:listName.text];
В делегатом finsihAddList
[self dismissModalViewControllerAnimated:YES];
Пробовал, но все равно получить ту же ошибку [self.delegate performSelector: @selector (finishAddList :) withObject: listName.text afterDelay: 0.0f]; – gabac
Вы пытались удалить анимацию во втором увольнении? И вы пробовали с большей задержкой? – jv42
большое дело помогает! thx a lot – gabac