複数のビューを持つナビゲーション ベースのアプリケーションを取得しました。最後のビューに到達すると、アプリケーションはメールを送信します (MailComposer を使用)。その後、ホーム ビューに戻りたいと思います。
すべて正常に動作しますが、次を使用してホーム vie に戻ろうとすると: [self.navigationController popToRootViewControllerAnimated:YES]; アプリケーションがクラッシュし、「EXC_BAD_ACCESS」エラーが表示されます。NSZombie を使用してこれをデバッグできることはわかっていますが、NSZombie でエラーを取得しようとすると、エラーは表示されません。
どうすればこれを修正できますか? または、すべてのビューを解放して最初のビューをリロードする方法はありますか? 私を助けるためのヒントや何でも素晴らしいでしょう。ここにいくつかのコードがあります:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
// Notifies users about errors associated with the interface
switch (result)
{
UIAlertView *alert;
case MFMailComposeResultCancelled:
NSLog(@"melding cancelled");
alert = [[UIAlertView alloc]initWithTitle:@"Email afgebroken" message:nil delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
break;
case MFMailComposeResultSaved:
NSLog(@"melding opgeslagen");
alert = [[UIAlertView alloc]initWithTitle:@"Email opgeslagen" message:nil delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
break;
case MFMailComposeResultSent:
NSLog(@"melding verzonden");
alert = [[UIAlertView alloc]initWithTitle:@"Email verzonden" message:nil delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
[self saveMelding];
break;
case MFMailComposeResultFailed:
NSLog(@"melding failed");
alert = [[UIAlertView alloc]initWithTitle:@"Email mislukt te versturen" message:@"probeer het later nog eens" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
break;
default:
NSLog(@"melding niet verzonden");
alert = [[UIAlertView alloc]initWithTitle:@"Email niet verzonden" message:nil delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
break;
}
[self dismissModalViewControllerAnimated:YES];
}
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0)
{
NSLog(@"ok");
[self.navigationController popToRootViewControllerAnimated:YES];
}
}