我想获取有关当前显示的UIAlertController
的参考。
(有些人以为我的问题很烂,并且投票否决了。但是他们错了,因为有一个问题的答案,我将其张贴出来,所以对此感兴趣的其他人可以找到它!)
答案 0 :(得分:0)
我用一个弱引用创建了一个单例类,然后扩展了UIAlertController
并提出了一种新的方法来呈现它,在其中我将此弱引用设置为新显示的警报。现在,只要有其他参考,它便会保留该警报的参考。
UIAlertController + Extension.h
@interface UIAlertController(Extension)
- (UIAlertController*)showIn:(UIViewController*)viewController;
+ (UIAlertController*)lastOnScreenAlert;
@end
UIAlertController + Extension.m
@interface LastAlert : NSObject
@property (nonatomic, weak) UIAlertController* reference;
@end
static LastAlert* lastAlert;
@implementation LastAlert
+ (void)initialize
{
[super initialize];
lastAlert = [LastAlert new];
}
@end
@implementation UIAlertController(Extension)
- (UIAlertController*)showIn:(UIViewController*)viewController
{
[viewController presentViewController:self animated:YES completion:nil];
[LastAlert class];
lastAlert.reference = self;
return self;
}
+ (UIAlertController*)lastOnScreenAlert
{
return lastAlert.reference;
}
@end