TEnterCorrectCodeController と TEmergencyCancelController という名前の 2 つのコントローラー クラスがあります。
両方のクラスにボタンがあります。両方のコントローラ クラスのボタン クリックで、別のコントローラ クラス名 TSendEmailController を呼び出しています。しかし、問題は、TEnterCodecontroller のボタン クリックが呼び出されたときに、[self presentModalController] を介して TSendEmailController を開き、TsendEmail クラスにあるボタンをクリックすると、別のクラスを開くことです。
TEmergencyCancelController のボタンがクリックされると、[self presentModalController] を介して TsendEmail が開き、TsendEmail のボタンがクリックされると、他のクラスを開くのではなく、コントローラーを閉じる必要があります。問題は、どのクラスが TsendEmailController を呼び出したかを識別する方法です。それに応じて、状態を確認する必要があります。
これは私のコードです:
for (int i=0; i< [self.navigationController viewControllers count]; i++)
{
UIViewController *aController = [[self.navigationController view viewControllers]objectAtIndex:i];
if ([aController isKindOfClass:[TEnterCorrectCodeController class]])
{
lblAttempt.hidden = YES;
[self saveregisteridinplist];
TInstructionsController *instructions = [[TInstructionsController alloc]init];
[self presentModalViewController:instructions animated:YES];
[instructions release];
}
else if ([aController isKindOfClass:[TEmergencyCancelController class]])
{
lblAttempt.hidden = YES;
[self saveregisteridinplist];
[self dismissModalViewControllerAnimated:YES];
}
}
私が書いたコードでは、navigationController を使用していないため、for ループに入りません。