
这里演示反向传值
SecondVC.h@protocol sendValueDelegate <NSObject>- (voID)sendValueString:(Nsstring *)str;@end@interface OC_SecController : UIVIEwController@property (nonatomic,assign) ID<sendValueDelegate> delegate;
SecondVC.m// 跳转方法中- (voID)clickBack:(UIbutton *)button{ if (self.delegate && [self.delegate respondsToSelector:@selector(sendValueString:)]) { // i am a String 是传过去的字符串 [self.delegate sendValueString:@"i am a String"]; } [self dismissModalVIEwControllerAnimated:YES];}
RootVC.m- (voID)click:(UIbutton *)button{ OC_SecController *sec = [[OC_SecController alloc] init]; // 指定代理人 sec.delegate = self; [self presentVIEwController:sec animated:YES completion:^{ }];}// 实现代理方法- (voID)sendValueString:(Nsstring *)str{ // str 就是传过来的值 NSLog(@"string : %@",str);}Swift
Swift 版本 我单独创建了一份协议
commond+ n
Protrol.swift// 定义一个协议protocol ModeVIEwControlDelegate{ // 协议方法 func changeLabelString(newString: String)}
SecondVC.swiftvar delegate : ModeVIEwControlDelegate?// 跳转返回的点击事件func click()->VoID{ let str = textFIEld.text self.delegate?.changeLabelString(str!) self.dismissVIEwControllerAnimated(true) { () -> VoID in } }
RootVc.swift// 实现协议中的方法 func changeLabelString(newString: String) { label.text = "labeltext:\(newString)" print(newString) // newString 从secondVC.swift 传过来的值 } // 跳转的点击方法 func click()->VoID { print("-------") let sec = SecVIEwController(); sec.delegate = self self.presentVIEwController(sec,animated: true) { () -> VoID in } }
demo: https://github.com/Zhangjingwang1993/SwiftProtocol Swift / OC 进阶群: 498143780
总结以上是内存溢出为你收集整理的Swift 协议代理传值(十)全部内容,希望文章能够帮你解决Swift 协议代理传值(十)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)