关系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;
}