【iOS开发-数据传递】关于两个Controller跳转时的数据传递
正向传递
当一个控制器切换到下一个控制器的时候,这个时候的数据传递为正向传递,所以只需要跳转之前执行一个方法就行。
/*就是执行控制器跳转之间的那条线之前做的方法*/
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// 1.取得目标控制器
UIViewController *contactVc = segue.destinationViewController;
// 2.设置标题
contactVc.title = [NSString stringWithFormat:@"%@的联系人列表", self.accountField.text];
}
反向传递
当一个控制器,需要切换到他上一个控制器的时候,还要给上一个控制器传递数据的时候就需要使用代理模式了。
假设控制B要传输数据给上一个控制器A
B中声明一个代理协议
@protocol MJEditViewControllerDelegate <NSObject>
@optional
//A要执行的方法,B会把数据传递给设个方法,A实现这个方法设置自己的数据,
@end
A遵守这个协议,然后实现协议中的方法,然后在B中设置其代理为A
B把数据准备好,然后通知他的代理A
// 2.通知代理
if ([self.delegate respondsToSelector:@selector(代理方法:)]) {
// 更新模型数据
self.contact.name = self.nameField.text;
self.contact.phone = self.phoneField.text;
[self.delegate editViewController:self didSaveContact:self.contact];
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。