您的位置:首页 > 移动开发 > IOS开发

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

2015-09-05 11:22 381 查看
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!");
}

完毕!




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: