如何从 alertview 获取按钮?

How to get button from alertview?

我将单选按钮添加到 UIView 并将视图添加到 alertview 使用:

[alertHours setValue:viewHours forKey:@"accessoryView"];

按钮设置为 tag 所以现在我想在按钮操作事件中获取所有按钮,我使用此代码检索所有按钮:

for (int i = 111 ; i <= 117 ; i++){
    UIButton *btnSender = (UIButton*)[self.view viewWithTag:i];
    [btnSender setImage:[UIImage imageNamed:@"Radio"] forState:UIControlStateNormal];
}

但是不能用这个获取按钮,我也用过这个:

UIButton *btnSender = (UIButton*)[alertObject viewWithTag:i];

但同样,无法获取按钮。

如何在操作方法中获取所有按钮?

尝试

UIButton *btnSender = (UIButton*)[viewHours viewWithTag:i];

因为按钮在 viewHours 视图中。

添加到 UIView 和视图的单选按钮添加到 alertview,所以可以试试这个,

UIButton *btnSender = (UIButton*)[alertObject.subviews viewWithTag:i];

您的 KVC 代码的标准语法

[alertHours setValue:viewHours forKey:@"accessoryView"];

alertHours.accessoryView = viewHours;

除非明确涉及 KVC,否则这是更可取的。

它将viewHours分配给主视图的accessoryView
因此按钮是 accessoryView 的子视图 == viewHours 而不是 self.view.

你也可以这样写

UIButton *btnSender = (UIButton*)[alertHours.accessoryView viewWithTag:i];