2013-07-08 58 views
-1

我有一個類名稱viewController,它具有下面的代碼,它工作正常。但是,當我從我的子類控制器調用檢查時,它無法按照我想要的方式工作。UIAlertView顯示,但它無法檢測觸摸按鈕索引0的時間。任何解決方法。警報視圖在一個類中工作,但不是另一個

-(void)check{ 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lose!" 
               message:@"Play Again?" 
               delegate:self 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:@"OK", nil]; 
    [alert show]; 

    } 

    - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 
      if (buttonIndex == 0) {  // and they clicked OK. 
         ViewController*myNewVC = [[ViewController alloc] init]; 
         [self presentModalViewController:myNewVC animated:NO]; 
      } 
     } 
+0

你必須使用自定義的委託對這項工作 – Rajneesh071

+0

如果我沒看錯,你想從你的子類調用警報委託? – SachinVsSachin

回答

0

添加UIAlertViewDelegate在子類.h文件中像波紋管..

@interface yourSubClassViewController :UIViewController <UIAlertViewDelegate>{ 
    /// your code 

} 
@end 
+0

@MooDoo添加'UIAlertViewDelegate'就像我上面的答案,然後讓我知道.. :) –

+0

對不起,這不起作用。 –

+0

如何顯示主類的子類?是指推送或呈現這個子類? –

0

取消按鈕將索引 「0」,請嘗試index==1

使用此方法:

-(void)check{ 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lose!" 
               message:@"Play Again?" 
               delegate:self 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:@"PopUp", nil]; 
    [alert show]; 

    } 

    - (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
      if (buttonIndex == 0) {  
        NSLog("Cancel Button clicked); 
      } 
     else if (buttonIndex == 1) { 
      ViewController*myNewVC = [[ViewController alloc] init]; 
      [self presentModalViewController:myNewVC animated:NO]; 
     } 
+0

試過這個,不起作用。如果我在View控制器中調用check方法,它就會起作用。不確定這個信息是否有幫助。 –

+0

你的意思是**檢查模式**。? –

+0

對不起,我編輯了它。 –

0

不要使用取消按鈕。使用兩個按鈕otherButtonTitles並使用按鈕索引== 1和按鈕索引== 2。這可能有幫助。

0

您需要將delegate設置爲您的子類。

-(void)check:(id)delegate{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lose!" 
              message:@"Play Again?" 
              delegate:delegate 
            cancelButtonTitle:@"OK" 
            otherButtonTitles:@"OK", nil]; 
[alert show]; 

} 

,你叫它[self check:self];

相關問題