2012-04-12 54 views
-1

我有一个名为TEnterCorrectCodeController和TEmergencyCancelController 2控制器类调用从两个不同的控制器UIViewController类的iphone。如何使用本模式

在两个班有buttons.On两个控制器类,我调用另一个控制器类名TSendEmailController的按钮点击。但问题是,当TEnterCodecontroller的按钮,点击它叫做打开TSendEmailController通过[自presentModalController]和存在于TsendEmail类我想另一个类要打开按钮的点击。

当点击TEmergencyCancelController的按钮时,它通过[self presentModalController]打开TsendEmail,当点击TsendEmail的按钮时,它不应该打开其他类,而应该关闭控制器。问题是如何确定哪些类呼吁TsendEmailController并取决于我要检查的条件.problem是,我没有使用navigationcontroller我使用[自我presentModalViewController动画:YES]推视图。

这是我的代码:

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循环。

+1

如果你不使用导航控制器,为什么你要通过导航控制器的视图控制器迭代?另外,为什么你就不能设置一个布尔属性在'TSendEmailController'当你出现了,你检查时,按下按钮? – samson 2012-04-12 08:45:10

+0

如果你的控制器不是导航控制器,那么你不能这样做。你应该为控制器设置一个标签并检查点击按钮。 – mChopsey 2012-04-12 08:45:17

+0

@samson请u能帮助我如何查布尔值 – Rani 2012-04-12 08:56:51

回答

0

对于您确定哪个类别的电话号码为TsendEmail的解决方案,请在AppDelegate中定义一个NSInteger。 例如。 NSInteger flag=0; ... @property and @synthesize吧..... 现在,当你调用TSendEmailTEnterCorrectCodeController,然后设置flag〜1 ......并在viewDidLoad of viewWillAppear方法,设置flag 0 .... 现在,当你在TEmergencyCancelController类,检查是否flag为0或1 ...如果0,那么dissmiss你的观点.....

你可以使用这个概念...... :)