第二界面往第一界面传值

来源:互联网 发布:编程机器人2.0 攻略 编辑:程序博客网 时间:2024/04/30 14:17


点击右侧的button   需要把cell上的右侧头像的id传过去 

view和controller分离 button方法拖在view里, 点击后 需要到controller里去push下个界面



刚开始用的代理,发现id传过去比较麻烦又改成block 代理能干的事block都能做


cell里创建代理

@protocol ConsultListTableViewCellDelegate <NSObject>

-(void)pushConsultVC;

@end


 cell里定义属性

@property (assign,nonatomic)id<ConsultListTableViewCellDelegate> delegate;


点击按钮判断 代理是否实现

- (IBAction)consultBtn:(id)sender {

    if (_delegate != nil && [_delegate respondsToSelector:@selector(pushConsultVC)]) {

        [_delegate pushConsultVC];

    }

}


controller里遵循协议

<ConsultListTableViewCellDelegate>

设置代理

cell.delegate = self;

执行方法

-(void)pushConsultVC

{

}


 又改成block 代理能干的事block都能做 这样方便传当个cell里的值

view里定义

typedef void(^PushConsultVC) (NSString *);

属性

@property (nonatomic,copy) PushConsultVC pushConsultVC;

点击后执行

- (IBAction)consultBtn:(id)sender {

    if (self.pushConsultVC) {

        self.pushConsultVC(str);

    }

}

controll里

    cell.pushConsultVC = ^(NSString *consultId){

        [self pushConsultVC:consultId];

    };


-(void)pushConsultVC:(NSString *)consultId

{

    OrderConsultationViewController *orderVC = (OrderConsultationViewController *)[BaseViewControllergetViewControllerWithName:@"OrderConsultationViewController"forStoryboard:@"Main"];

    orderVC.consultantId = consultId;

    [self.navigationControllerpushViewController:orderVC animated:YES];}



0 0
原创粉丝点击