Я создал одноэлементный класс с одной слабой ссылкой, затем расширил 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