0

在不同动作的控制器中,我需要UIAlertView用“OK”和“CANCEL”按钮显示,每次“OK”点击这 5UIAlertView秒需要做不同的事情。是否可以声明类似 lambda 函数的东西来指定每个“确定”按钮UIAlertView要做什么?(在 5 个地方的代码中,我有不同的问题、消息和操作 ok,有些根本没有输入文本)

   UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"Apply"
                          message:@"Are you sure you want to apply ?"
                          delegate:self
                          cancelButtonTitle:@"CANCEL"
                          otherButtonTitles:@"OK",
                          nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    [alert show];

(目前我记得导致UIAlertView显示的动作,然后根据动作我做不同的事情,但它不是清晰的代码)。

4

3 回答 3

1

这是可能的,但是通过扩展现有的控件。我建议使用RIButtonItem,我自己在最近的几个项目中使用它。

于 2013-04-28T19:14:41.507 回答
1

使用一个名为UIKitCategoryAdditions的类别,该类别实现基于块的UIAlertViewUIActionSheet用于选择或取消操作。

它使得将动作分配给许多用户提示变得非常简单,而无需实现委托方法并在同一个控制器中处理多个对象的委托响应。

于 2013-04-28T19:01:39.023 回答
-1

使用objective-c 块代替您的委托。

delegate: ^(UIAlertView * alertView, NSInteger buttonIndex) { doSomethingHere; }; 
于 2013-04-28T18:56:51.220 回答