iOSエージェントモード

1424 ワード

 代理,应该是oc的一个最特别的特色之一了。我们可以看见在好多地方都会运用到它,最直接的例子就是调用tableview的时候,他需要在主界面调用tableview的一些方法,像这个列表里有多少行,每行长什么样子,这个都是实现tableview的代理方法。 
   
  

废话不多说,我们看代码,以自定义cell为例子,咱们需要实现其内部一些按钮的方法来吧(于是我找了好久以前的代码,现在我觉得用block还是可以的)

cell.h

#import 
@class SujianTableViewCell;
@protocol SujianTableCellDelegate 

-(void)SujianOnClick:(id)sender;

@end

@interface SujianTableViewCell : UITableViewCell
@property (weak, nonatomic) iddelegate;//     
@end
cell.m
- (void)SucellOnClick:(id)sender {
    UIButton *bt = sender;
    [self.delegate SujianOnClick:bt]; //            
}

私たちはtableviewでメインインタフェースでこのように書きます.
@interface MainrootViewController () //  

 SujianTableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:cellStr];
                if (cell == nil) {
                    cell = [[SujianTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellStr];
                    cell.accessoryType = UITableViewCellAccessoryNone;
                    cell.selectionStyle = UITableViewCellSelectionStyleNone;
                }
                cell.delegate = self;  //     


#pragma mark - SujianDelegate   //      cell    
- (void)SujianOnClick:(id)sender
{

}