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 = @"张三",做其他的操作。
[self.delegate passValue:@"李四"];
[self.delegate sayHi];
@interface FirstViewController ()<SecondViewControllerDelegate>
//第五步:找代理人
second.delegate = self;
//第六步:实现协议方法
- (void)passValue:(NSString *)value{
_label.text = value;
}
//可选择实现
- (void)sayHi{
NSLog(@"Hi!");
}
完毕!