2011-06-01 75 views
0

按钮控件我有这样的代码在IBAction为:IOS:两人在一个UIAlert

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"NO!" 
                 message:@"danger" 
                 delegate:self 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:@"Annul", nil]; 

    [alertView show]; 
    [alertView release]; 

现在,如果我按“OK”必须做的事,如果我把“年度审核及年度”必须做的另一件事。但它必须在IBAction内完成。

+1

“必须在IBAction内完成”..你是什么意思?为什么不使用UIAlertviewDelegate回调clickedButtonAtIndex – Krishnabhadra 2011-06-01 11:13:18

回答

1

Jhaliya的答案是伟大的,但它并没有解决blackguardian的请求,IBAction方法中运行这些。有一个IBAction方法阻塞并等待来自UIAlertView的响应是在CocoaTouch中工作的错误方法。 IBAction应该只显示UIAlertView。然后Jhaliya的答案中的委托功能应解析继续的方式,“OK”或“Annul”。然后该委托函数可以执行该操作(可能通过调用其他方法)。 CocoaTouch的事件处理不适用于IBAction方法阻止等待进一步的用户输入。

觉得链IBAction->UIAlertView->alertView:clickedButtonAtIndex:的作为只是不使用UIAlertView时,并将其放置在IBAction你当前的代码这条产业链后IBAction

+0

aaaaah ....好的....你的解释很清楚...谢谢 – CrazyDev 2011-06-01 13:18:56

9

您需要实施UiAlertViewDelegate方法。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

所以委托函数应该如下所示。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
    { 
      if(buttonIndex == 0)//OK button pressed 
      { 

      } 
      else if(buttonIndex == 1)//Annul button pressed. 
      { 

      } 
    } 
+0

如果我使用这个方法委托在ibaction中有效果? – CrazyDev 2011-06-01 11:14:57

+0

+1)@blackgaurdian,为什么你在ibaction中生效。 – Ishu 2011-06-01 11:31:08

+0

我解释我的问题:如果我按下OK,则Ib操作继续执行其操作,而如果按下Annul,则IBAction的指令为“返回”; – CrazyDev 2011-06-01 13:15:28