iOS 新手代理传值

本文详细介绍了如何在iOS应用中实现两个页面间的数据传递,通过定义协议、遵循协议和使用委托模式来完成数据的无缝共享。示例中展示了如何在A页面中创建并遵循特定协议,以及在B页面中利用委托来接收并展示来自A页面的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现两个页面的传值,将A页面的值,传递给B页面。首先定义一个协议,协议里面添加要实现的方法 -(NSString *)getText; A的值要传给B,那么A就必须遵循这个协议,遵循这个协议就必须实现这个方法,

-(NSString *)getText{

    return _text.text;

}

我们在B中定义一个委托用来帮住我们传递

@property (assign,nonatomic) id<delegate> nimei;


- (void)viewDidLoad

{

    [super viewDidLoad];

    _text=[[UITextField alloc]initWithFrame:CGRectMake(50, 100, 200, 50)];

    _text.placeholder=@"请输入";

    _text.layer.borderColor=[UIColor grayColor].CGColor;

    _text.layer.borderWidth=1.0;

    [self.view addSubview:_text];

    

    UIButton *button=[[UIButton alloc]initWithFrame:CGRectMake(50, 200, 50, 40)];

    [button setTitle:@"传值" forState:UIControlStateNormal];

    button.backgroundColor=[UIColor grayColor];

    [button addTarget:self action:@selector(push) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:button];

}

-(void)push{

    BViewController *viewController = [[BViewController alloc] initWithNibName:nil bundle:nil];

    viewController.nimei=self;

    [self.navigationController pushViewController:viewController animated:YES];


}



-(void)changeValue :(NSString *)text{

    _text.text=text;

}


-(NSString *)getText{

    return _text.text;


}

传值的时候在点击的时候将A自己(A本身就是一个代理),因为它自身集成了一个协议


在B中就可以直接使用这个代理来进行传值

    _text.placeholder=[_nimei getText];

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值