zoukankan      html  css  js  c++  java
  • UIAlertView+Blocks.h

    #import <Foundation/Foundation.h>
    
    typedef void (^DismissBlock)(int buttonIndex);
    typedef void (^CancelBlock)();
    
    @interface UIAlertView (Blocks) <UIAlertViewDelegate> 
    
    + (UIAlertView*) showAlertViewWithTitle:(NSString*) title                    
                                    message:(NSString*) message 
                          cancelButtonTitle:(NSString*) cancelButtonTitle
                          otherButtonTitles:(NSArray*) otherButtons
                                  onDismiss:(DismissBlock) dismissed                   
                                   onCancel:(CancelBlock) cancelled;
    
    @end
    //
    //  UIAlertView+Blocks.m
    //  UIKitCategoryAdditions
    //
    
    #import "UIAlertView+Blocks.h"
    
    static DismissBlock _dismissBlock;
    static CancelBlock _cancelBlock;
    
    @implementation UIAlertView (Blocks)
    
    + (UIAlertView*) showAlertViewWithTitle:(NSString*) title                    
                                    message:(NSString*) message 
                          cancelButtonTitle:(NSString*) cancelButtonTitle
                          otherButtonTitles:(NSArray*) otherButtons
                                  onDismiss:(DismissBlock) dismissed                   
                                   onCancel:(CancelBlock) cancelled {
      
      _cancelBlock  = [cancelled copy];
      
      _dismissBlock  = [dismissed copy];
      
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
                                                      message:message
                                                     delegate:[self self]
                                            cancelButtonTitle:cancelButtonTitle
                                            otherButtonTitles:nil];
      
      for(NSString *buttonTitle in otherButtons)
        [alert addButtonWithTitle:buttonTitle];
      
      [alert show];
      return alert;
    }
    
    + (void)alertView:(UIAlertView*) alertView didDismissWithButtonIndex:(NSInteger) buttonIndex {
      
        if(buttonIndex == [alertView cancelButtonIndex])
        {
            _cancelBlock();
        }
      else
      {
        _dismissBlock(buttonIndex - 1); // cancel button is button 0
      }  
    }
    
    
    @end
     
  • 相关阅读:
    c++ 学习笔记
    python 2048游戏控制器
    c++ 动态内存
    c++ 拷贝构造函数、拷贝运算符、析构函数
    c++ struct enum union加typedef与不加typedef
    c++ 动态内存2
    c++ 指针数组与指向数组的指针
    c++ TextQuery程序
    c++ virtual
    c++ 动态内存 动态数组
  • 原文地址:https://www.cnblogs.com/hxwj/p/4796270.html
Copyright © 2011-2022 走看看