Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 30th, 2012  |  syntax: None  |  size: 1.78 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Get immediate value from UIALertView
  2. [YUYesNoListener yesNoWithTitle:@"My Title" message:@"My Message" yesBlock:^
  3. {
  4.     NSLog(@"YES PRESSED!");
  5. }
  6. noBlock:^
  7. {
  8.     NSLog(@"NO PRESSED!");
  9. }];
  10.        
  11. typedef void(^EmptyBlockType)();
  12.  
  13. @interface YUYesNoListener : NSObject <UIAlertViewDelegate>
  14.  
  15. @property (nonatomic, retain) EmptyBlockType yesBlock;
  16. @property (nonatomic, retain) EmptyBlockType noBlock;
  17.  
  18. + (void) yesNoWithTitle:(NSString*)title message:(NSString*)message yesBlock:(EmptyBlockType)yesBlock noBlock:(EmptyBlockType)noBlock;
  19.  
  20. @end
  21.  
  22. @implementation YUYesNoListener
  23.  
  24. @synthesize yesBlock = _yesBlock;
  25. @synthesize noBlock = _noBlock;
  26.  
  27. - (id) initWithYesBlock:(EmptyBlockType)yesBlock noBlock:(EmptyBlockType)noBlock
  28. {
  29.     self = [super init];
  30.     if (self)
  31.     {
  32.         self.yesBlock = [[yesBlock copy] autorelease];
  33.         self.noBlock = [[noBlock copy] autorelease];
  34.     }
  35.     return self;
  36. }
  37.  
  38. - (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
  39. {
  40.     if (buttonIndex == 0 && self.noBlock)
  41.         self.noBlock();
  42.     else if (buttonIndex == 1 && self.yesBlock)
  43.         self.yesBlock();
  44.  
  45.     [_yesBlock release];
  46.     [_noBlock release];
  47.     [alertView release];
  48.     [self release];
  49. }
  50.  
  51. - (void) alertViewCancel:(UIAlertView *)alertView
  52. {
  53.     if (self.noBlock)
  54.         self.noBlock();
  55.     [_yesBlock release];
  56.     [_noBlock release];
  57.     [alertView release];
  58.     [self release];
  59. }
  60.  
  61. + (void) yesNoWithTitle:(NSString*)title message:(NSString*)message yesBlock:(EmptyBlockType)yesBlock noBlock:(EmptyBlockType)noBlock
  62. {
  63.     YUYesNoListener* yesNoListener = [[YUYesNoListener alloc] initWithYesBlock:yesBlock noBlock:noBlock];
  64.     [[[UIAlertView alloc] initWithTitle:title message:message delegate:yesNoListener cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil] show];
  65. }
  66.  
  67. @end