【ios】2个viewController之间传值(segue方式)

4 篇文章 0 订阅
3 篇文章 0 订阅
目前我了解的viewController之间传值有2种方式,一种是segue方式,一种是delegate方式;本文只讲segue方式。

先定义viewController 1简称为A,viewController2简称为B

从A内的属性传给B;

第1、在B内先定义属性(Setter),供外部A调用;

比如:

B.h定义:

@property (nonatomic, strong) NSMutableArray* mysearchResultArray;

B.m中定义:

@synthesize mysearchResultArray;

接着2、在A定义到B的segue,即在storyboard中拖一根从A中按钮或者其他控件到B面板的线,并定义:Identifier;比如:




特别注意右边红色框内的属性别忘定义。

最后3、在A中定义方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
	if ([segue.identifier isEqualToString:@"imageShow"])//此处判断是否是我们之前定义的segue,一个面板是可以定义多个去向的。
	{
		HSOATUserCollectionViewController* targetController = [segue destinationViewController];//在A中得到B面板对象;
                [targetController setMysearchResultArray:self.searchResultArray];//把A中的属性设置到B中。
	}
}

这样基本就ok啦,你可以在B的下面方法中尝试输出属性的值情况,比如这里的数组长度:

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"%i",[[self mysearchResultArray] count]);
}

是不是很ok啊。

这里需要注意的是:

1、segue方式和delegate方式是两种方式,请勿为了实现一个传递功能用两种方式,当然,在整个项目中用哪种?甚至都用都无所谓啦。

2、storyboard里面别忘了给A,B面板指定Class(即对应的viewController);

3、本人也是刚刚才学习ios开发,如有描述错误,欢迎批评指正。heroying@gmail.com




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值