复习Prtocol

关系A push B
界面A向界面B传值用属性传值, B接收可重写setter方法

界面B传值给A, 也就是回传, 用代理

第一步: 在B.h, B签协议并声明方法

 @protocol ViewControllerDelegate <NSObject>

 - (void)passLocation:(NSString *)locationText;

@end

第二步, 在B.h, 声明属性, 注意是weak

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

第三步: 在B.m, 在适当的时机传值

//判断代理中的方法是否被实现,避免未被实现代理的程序崩溃
if ([self.delegate respondsToSelector:@selector(passLocation:)]) {
        [self.delegate passLocation:[NSString stringWithFormat:@"纬度:%f, 经度%f", view.annotation.coordinate.latitude, view.annotation.coordinate.longitude]];
    }

第四步, 来到A.m, 签协议,

@interface FirstViewController ()<ViewControllerDelegate>

第五步: 在A.m, 找个合适的地方, B指定代理人为A

self.vc.delegate = self;

第六步: 在A.m, 找个空白地方实现协议方法

- (void)passLocation:(NSString *)locationText{

    _label.text = locationText;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,532评论 25 708
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • 你踏马的在搞什么 我真的很生气 难道你就不能勤奋点吗 总是在幻想 别以为你是水瓶座就可以天马行空 还觉得自己才华横...
    Rush_she阅读 300评论 0 0
  • 关于孩子过生日,是大人随礼?还是孩子自己选礼物! 今天大宝同学过生日,请去了比较高档的餐厅吃饭,因为请客费用高,几...
    晴致生活馆阅读 261评论 0 0
  • 我一直觉得努力不是什么褒义词。努力只是一个用于形容人的标签,就和开朗,外向,活泼一样没什么优劣之分的标签。偶尔我还...
    怒风爱语风阅读 858评论 0 0