-
兩個控制器之間傳值
傳送控制器需要添加的代碼
傳送的控制器.h
#import <UIKit/UIKit.h>
//定義Block類型
typedef void(^JFCityViewControllerBlock)(NSString *cityName);
@interface JFCityViewController : UIViewController
@property (nonatomic,copy) JFCityViewControllerBlock choseCityBlock;
- (void)choseCityBlock:(JFCityViewControllerBlock)block;
@end
傳送的控制器.m
//對應於.h文件中的方法,用來給需要接收的控制器調用,然後保存Block到self.choseCityBlock中
- (void)choseCityBlock:(JFCityViewControllerBlock)block {
self.choseCityBlock = block;
}
...
//這裡開始調用Block,並將[cityData valueForKey:@"city"]字符串偉過去
__weak typeof(self) weakSelf = self;
if (weakSelf.choseCityBlock) {
weakSelf.choseCityBlock([cityData valueForKey:@"city"]);
}
接收控制器需要添加的代碼
//只需要設置Block裏面需要做的事情,就等著傳送控制器有值後來調用了!
[cityViewController choseCityBlock:^(NSString *cityName) {
self.conditionView.cityName = cityName;
self.city = cityName;
}];