ios - 委托(delegate)的几个 UIAlertViews

标签 ios iphone delegates uialertview uialertviewdelegate

目前,我有一个类在各处弹出 UIAlertView。目前,同一个类是这些的委托(delegate)(这是非常合乎逻辑的)。不幸的是,这些 UIAlertView 将调用该类的相同委托(delegate)方法。现在,问题是——您如何知道从哪个警报 View 调用了委托(delegate)方法?我正在考虑只检查警报 View 的标题,但这并不是那么优雅。处理多个 UIAlertView 的最优雅的方法是什么?

最佳答案

像这样标记 UIAlertView:

#define kAlertViewOne 1
#define kAlertViewTwo 2

UIAlertView *alertView1 = [[UIAlertView alloc] init...
alertView1.tag = kAlertViewOne;

UIAlertView *alertView2 = [[UIAlertView alloc] init...
alertView2.tag = kAlertViewTwo;

然后使用这些标签在委托(delegate)方法中区分它们:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if(alertView.tag == kAlertViewOne) {
        // ...
    } else if(alertView.tag == kAlertViewTwo) {
        // ...
    }
}

关于ios - 委托(delegate)的几个 UIAlertViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338546/

相关文章:

ios - 将表格单元格委托(delegate)给其他表格 View

ios - 我可以使用 prepareForSegue 方法而不是 Label 更新位于第二个 View Controller 中的 BOOL,为什么?

iPhone 键盘没有显示

ios - 在回调 block 中调用时不会触发导航更改

ios - tableView 没有出现在 ViewController 中(swift)

iphone - 如何构建用于在 iPhone 中标记电子邮件的应用程序?

iphone - 无法在 EKEvent 中编程开始日期

ios - 设置包根中没有 'Child Pane' 选项

iphone - 在 UITextView 上选择 UITableViewCell 会失去调用 didSelectRowAtIndexPath 委托(delegate)方法的能力吗?

objective-c - 委托(delegate)问题