-1

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 ループに入りません。

4

1 に答える 1

0

どのクラスが呼び出されたかを識別するソリューションとして、でTsendEmail1つを定義NSIntegerAppDelegateます。例:NSInteger flag=0;... it .....ここで、から@property and @synthesize呼び出すときは1に設定し、メソッドでは0に設定します。...クラスにいるときは、 0か0かを確認します。 1 ... 0の場合、ビューを閉じます....。TSendEmailTEnterCorrectCodeControllerflagviewDidLoad of viewWillAppearflagTEmergencyCancelControllerflag

この概念を使用できます....:)

于 2012-04-12T08:48:42.367 に答える