iOS开发:界面传值之属性和代理传值

本文介绍iOS开发中界面间传值的两种方式:属性传值和代理传值,并通过通讯录示例详细阐述每个过程,包括如何在不同页面间传递数据和接收反馈。

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

iOS开发:界面传值

方式: 属性传值和代理传值

现在以通讯录为例,简单介绍一下。

1、属性传值 (前 -- > 后) :这种传法比较简单,  在首页中点击一个人的姓名,然后跳转到这个人的详细介绍界面。在这个过程中肯定是要传某个值过去,然后后一页再根据这个值显示详细的信息。

思想:

a)  在第一页中引入第二页的头文件,然后就可以调用它的属性(在第二页的.h文件中声明)进行赋值。

第二页的.h中声明一个属性:

   @property(nonatomic, retain)NSString *name;

    b) 在第一页中引入第二页的头文件,并初始化一个对象,然后给属性赋值。

   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    SecondViewController *second = [[ContactViewControlleralloc]init];

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

      second.name = @"张三";

}

说明:此方法是UITableView里面触发cell系统自带的一个方法。只要触发cell,就会跳转到下一页,并将张三这个值传过去。也可以自己写个手势调用一个自己写的方法实现。

   c)在第二页接收_name = @"张三",做其他的操作。


2、代理传值(后 -- > 前 ): 在详情界面编辑(删除、添加。。。)后,将修改后的信息传到首页。此时,首页也得接收修改信息,做出相应的改变。
步骤:在第二页的.h文件中:

//第三步:在第二页.m文件中 触发代理人去执行方法:(只要代理人触发passValue这个方法,它就可以接收李四这个值)

   [self.delegate passValue:@"李四"];

    [self.delegate sayHi];

//第四步:在首页的.m/.h都行签协议

     @interface FirstViewController ()<SecondViewControllerDelegate>

//第五步:找代理人

second.delegate = self;

//第六步:实现协议方法

- (void)passValue:(NSString *)value{

    _label.text = value;

}

//可选择实现

- (void)sayHi{

    NSLog(@"Hi!");

}


完毕!微笑微笑微笑















评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值