在两个页面间传参有两种方法:
1,通过属性或方法来传参。
2,通过协议。
对于1,关键是找准对象,在碰面的时候(个人感觉通常是在发生事件时,比如按下按钮页面跳转时,在响应按钮的方法中第一个页面的对象会和第二个页面的对象碰面),此时就要抓住机会留下线索。
- (void)didClicked
{
FirstViewController *firstViewCtrl = [[FirstViewController alloc]init];
firstViewCtrl.v =self; //碰面的时候留下线索。
[self.navigationController pushViewController:firstViewCtrl animated:YES];
NSLog(@"age = %d",_age);
NSLog(@"value = %d",self.f.value);
}
注意事项:
1,@property (nonatomic, strong) FirstViewController *f;
类的属性只是代表它有那个能力,但还没有创建相应的对象。如果f没有被赋给一个FirstViewController的对象,就使用的话(eg:self.f.value=2)是没有意义的,因为此时self.f是一个空对象nil。
2,找准对象,要小心不能找到它的一个双胞胎。常见的是重新创建一个名字一样的新的对象,而这个新创建的对象它的属性值刚开始的时候都是0或nil,从而导致传参失败。
3,指针,是单向的,是“->”,而不是双向的:“<->”。
4,方法是双向的,可以接受传过来的值,又可以return一个值。