我正在尝试编写一个帮助类,以允许我们的应用程序同时支持UIAlertAction和UIAlertView.但是,在为UIAlertViewDelegate编写alertView:clickedButtonAtIndex:方法时,我遇到了这个问题:我看不到在UIAlertAction的处理程序块中执行代码的方法.
我试图通过在称为处理程序的属性中保留一组UIAlertActions来做到这一点
@property (nonatomic,strong) NSArray *handlers;
然后实现这样的委托:
- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { UIAlertAction *action = self.handlers[buttonIndex]; if (action.enabled) action.handler(action); }
但是,没有action.handler属性,或者实际上我可以通过任何方式获取它,因为UIAlertAction标头只有:
NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAlertAction : NSObject <NScopying> + (instancetype)actionWithTitle:(Nsstring *)title style:(UIAlertActionStyle)style handler:(void (^)(UIAlertAction *action))handler; @property (nonatomic,readonly) Nsstring *title; @property (nonatomic,readonly) UIAlertActionStyle style; @property (nonatomic,getter=isEnabled) BOOL enabled; @end
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。