// 创建一个SecondViewController
// 在.h文件中声明协议
***SecondViewController
// 声明协议
@protocol SecondViewControllerDelegate <NSObject>
- (void)changValue:(NSString *)value;
@end
// 设置代理人属性
@interface SecondViewController : UIViewController
@property(nonatomic, assign)id<SecondViewControllerDelegate>delegate;
@property(nonatomic, retain)UILabel *label;
@property(nonatomic, copy)NSString *str;
@property(nonatomic, retain)UITextField *textField;
// 在SecondViewController中返回上一个界面的方法中 让代理人执行方法
***SecondViewController.m***
- (void)click:(UIButton *)button {
[self.navigationController popToRootViewControllerAnimated:YES];
[self.delegate changValue:self.textField.text];
}
// 在前一个ViewController中的pushViewController中设置代理人
***ViewController.m***
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
SecondViewController *secVC = [[SecondViewController alloc] init];
[self.navigationController pushViewController:secVC animated:YES];
// 设置代理人
secVC.delegate = self;
}
// 实现协议方法
***ViewController.m***
- (void)changValue:(NSString *)value {
if (![value isEqualToString:@""]) {
// 属性的数组是数据源
[self.array addObject:value];
// 对tableView进行刷新操作
[self.tableView reloadData];
}
}