协议的使用步骤
1、声明协议
@class ItemView
;
@protocol ItemViewDelegate <NSObject>
@optional
- (void)didItemView:(ItemView *)itemView atIndex:(NSInteger)index;
@end
@property (nonatomic, assign) id <ItemViewDelegate> delegate;
添加事件
- (void)addGesture
{
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didItemView:)];
[self addGestureRecognizer:tap];
}
#pragma mark - Target Actions
- (void)didItemView:(UITapGestureRecognizer *)tap
{
if ([self.delegate respondsToSelector:@selector(didItemView:atIndex:)]) {
[self.delegate didItemView:self atIndex:self.tag];
}
}
@interface MainViewController : UITabBarController
<ItemViewDelegate>
//挂代理
itemView.delegate = self;
协议方法
#pragma mark - ItemView Delegate
- (void)didItemView:(ItemView *)itemView atIndex:(NSInteger)index
{
//[UIView beginAnimations:nil context:NULL];
// _selectView.frame = CGRectMake(5 + 65 * index, _tabBarBG.height/2-45.0/2, 50, 45);
//
[UIView commitAnimations];
// self.selectedIndex = index;
[self changeViewController:index];
}
1、声明协议
@class ItemView
;
@protocol ItemViewDelegate <NSObject>
@optional
- (void)didItemView:(ItemView *)itemView atIndex:(NSInteger)index;
@end
@property (nonatomic, assign) id <ItemViewDelegate> delegate;
添加事件
- (void)addGesture
{
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didItemView:)];
[self addGestureRecognizer:tap];
}
#pragma mark - Target Actions
- (void)didItemView:(UITapGestureRecognizer *)tap
{
if ([self.delegate respondsToSelector:@selector(didItemView:atIndex:)]) {
[self.delegate didItemView:self atIndex:self.tag];
}
}
@interface MainViewController : UITabBarController
<ItemViewDelegate>
//挂代理
itemView.delegate = self;
协议方法
#pragma mark - ItemView Delegate
- (void)didItemView:(ItemView *)itemView atIndex:(NSInteger)index
{
//[UIView beginAnimations:nil context:NULL];
// _selectView.frame = CGRectMake(5 + 65 * index, _tabBarBG.height/2-45.0/2, 50, 45);
//
[UIView commitAnimations];
// self.selectedIndex = index;
[self changeViewController:index];
}