美文网首页
反向传值 代理

反向传值 代理

作者: MakeThatChange | 来源:发表于2016-05-30 15:24 被阅读30次

    1).第二页中

    1.声明协议和方法

    @class PurpleViewController;//向前生声明

    @protocol  PurpleViewControllerDelegate

    - (void)purpleVC:(PurpleViewController *)purpleVC text:(NSString *)text;

    @end

    2.声明协议类型的属性

    @property (nonatomic, weak) id delegate;

    3.在适当的位置调用协议方法

    //监听是否输入了字符,是否点击了return

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

    {

       if ([text isEqualToString:@"\\n"]) {

           if ([_delegate respondsToSelector:@selector(purpleVC:text:)]) {

               [_delegate purpleVC:self text:textView.text];

           }

           [self dismissViewControllerAnimated:YES completion:nil];

       }

       return YES;}

    2).第一页中

    1.引入第二页遵守协议

    @interface ViewController ()

    <PurpleViewControllerDelegate>

    2.在适当时机,将自己设置为第二页的代理类

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

       if ([segue.identifier isEqualToString:@"11"]) {

           PurpleViewController *vc = segue.destinationViewController;

           vc.delegate = self;

    }

    }

    2.调用方法

    - (void)purpleVC:(PurpleViewController *)purpleVC text:(NSString *)text{

    self.textView.text = text;

    }

    ———————————————————————————————————————

    执行到这一步之前,已近将第一页的地址赋给了第二页的delegate,当delegate在第二页调用方法,传入第二页的参数时,第一页

    会执行协议的方法

    [_delegate purpleVC:self text:textView.text];

    ———————————————————————————————————————

    相关文章

      网友评论

          本文标题:反向传值 代理

          本文链接:https://www.haomeiwen.com/subject/jbfcdttx.html