美文网首页#iOS#HeminWon
ios-协议/代理是怎么实现两个页面之间传值

ios-协议/代理是怎么实现两个页面之间传值

作者: Roger_单 | 来源:发表于2015-12-14 11:30 被阅读702次

  • 第一页面
    //NextViewController是push进入的第二个页面
    //NextViewController.h 文件
    //定义一个协议,前一个页面ViewController要服从该协议,并且实现协议中的方法
@protocol NextViewControllerDelegate <NSObject>
 - (void)passTextValue:(NSString *)tfText;
@end
@interface NextViewController : UIViewController
@property (nonatomic, assign) id<NextViewControllerDelegate> delegate;
@end

//NextViewController.m 文件
//点击Button返回前一个ViewController页面

- (IBAction)popBtnClicked:(id)sender {
    if (self.delegate && [self.delegate respondsToSelector:@selector(passTextValue:)]) {
        //self.inputTF是该页面中的TextField输入框
        [self.delegate passTextValue:self.inputTF.text];
    }
    [self.navigationController popViewControllerAnimated:YES];
}
  • 传到第一页
    • 接下来我们在看看ViewController文件中的内容,
      //ViewController.m 文件
@interface ViewController ()<NextViewControllerDelegate>
@property (strong, nonatomic) IBOutlet UILabel *nextVCInfoLabel;
@end

//点击Button进入下一个NextViewController页面

- (IBAction)btnClicked:(id)sender
{
    NextViewController *nextVC = [[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
    nextVC.delegate = self;//设置代理
    [self.navigationController pushViewController:nextVC animated:YES];
}

//实现协议NextViewControllerDelegate中的方法

#pragma mark - NextViewControllerDelegate method
- (void)passTextValue:(NSString *)tfText
{
    //self.nextVCInfoLabel是显示NextViewController传递过来的字符串Label对象
    self.nextVCInfoLabel.text = tfText;
}

相关文章

  • ios-协议/代理是怎么实现两个页面之间传值

    第一页面//NextViewController是push进入的第二个页面//NextViewController...

  • 界面之间的通信知识点总结

    界面通信的三种方法: 属性传值:将第一页页面的值传给第二个页面。 代理传值:实现界面传值要6步: 声明协议和协议的...

  • ios常用的三种传值方式

    iOS中有多种方案可以实现页面之间的传值,例如:属性传值、代理传值、block传值、单例传值...。常用的三种传值...

  • Objective-C界面传值(二):协议传值

    协议传值 协议传值是利用协议的特性来实现界面传值的一种方法.我们把要传值得页面当作协议声明者,把接收值得页面作为代...

  • 界面传值(+导航控制器) 复习

    前提是想要实现界面传值 必须建立两个页面 这样才能实现界面之间的传值 在第一个页面RootViewControll...

  • 界面传值

    1正向传值 2反向传值(代理) 在b界面 :1声明协议和方法(方法不实现)2定义代理属性 通知代理 a面遵守协议。...

  • iOS简单block的传值

    一直对block传值理解不深,觉得很复杂,所有遇见传值的问题大多数还是用代理传值,但是代理传值还得注册协议实现代理...

  • 请简述页面传值都有哪些实现方式。

    请简述页面传值都有哪些实现方式。 代理、block、通知、属性传值、单例传值、NSUserDefault (1)属...

  • 代理

    一:代理传值 A跳转到B,若传值,直接属性即可,但是B返回到A若传值该怎么传值呢? 代理: A的声明中 建立协议 ...

  • Swift 代理传值方式

    协议传值 协议传值,主要用于代理模式。假设我们要实现从详情界面传值到主界面这一需求,首先,我们需要拟定一份协议,为...

网友评论

    本文标题:ios-协议/代理是怎么实现两个页面之间传值

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