首页 > 两个视图控制器间传值,后面一个视图控制器的属性是如何传到前面一个的呢?

两个视图控制器间传值,后面一个视图控制器的属性是如何传到前面一个的呢?

在两个视图AViewController和BViewController间切换,应用的根视图控制器为UINavigationController,
在AViewController.m中:

-(void)viewWillAppear{
label.text = item.text;
}

在BViewController.m中:

-(void)viewWillDisAppear{
item.text = textField.text;
}

A,B两个Controller中,都有一个属性为item的实例变量.但是在视图切换的时候,从B->A,
A的item属性是如何获得B的item的数据的呢?


在弹出BViewController的时候把item给AViewController就行了,把AViewController *a实例传到BViewController的属性里面,然后在BViewController赋个值。

-(void)viewWillDisappear:(BOOL)animated
{
    a.item = item;
}

这边搞错题主意思了,修正下:
b.item = item;(b.item = a.item;)
那这两个a.item和b.item就是一个实例,修改b.item也就是修改a.item,所以当然一样啊。


把 A 的item这个属性暴露在.h里:

@property (nonatomic, strong) SomeClass* item;

B 调起 A 的时候

a.item = item;

顺便说,现在很少用到实例变量了。尽量用property代替实例变量。

【热门文章】
【热门文章】