這段時間閒來沒事就研究一下block,說不上了解甚多,只是覺得它是一個研究方向,對自己有幫助所以就寫了段代碼來鞏固一下,順便紀念一下
alertView是一個不錯的控件,給ios開發提供了有利的幫助,但是蘋果官方所給出的demo遠遠不能滿足開發者的需要,所以就出現了許多自定義,在這個基礎上,自己想用block來實現alertView的基本功能,什麼都不說了 直接代碼
.h 文件
#import <UIKit/UIKit.h>
@interface ZYAlertView : UIAlertView<UIAlertViewDelegate>
@property(copy, nonatomic)void (^ handlerIndex)(NSUInteger);
- (void)showIt:(void(^)(NSInteger index))selectIndex;
@end
.m 文件
#import "ZYAlertView.h"
@implementation ZYAlertView
- (void)showIt:(void(^)(NSInteger index))selectIndex
{
self.delegate = self;
//init handler
_handlerIndex = [selectIndex copy];
[selfshow];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"_____ %d",buttonIndex);
_handlerIndex(buttonIndex);
[_handlerIndexrelease];
}
@end
首先解釋一下
self.delegate = self;
當你不填寫這句話的時候 就起不到點擊button 調用UIAlertDelegate的作用
_handlerIndex = [selectIndex copy];
這句話是初始化一個_handlerIndex
剩下的就是圍繞這個代理方法所展開的工作 , block 我還會繼續研究,有新的作品,將會繼續展現