2012-04-12 67 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你的觀點.....

你可以使用這個概念...... :)

相關問題