ios开发-storyboard所遇到的坑

前端时间由于客串下ios开发人员,入门了下ios开发,由于接手的二期工程,一期的工程人可能想快速开发,使用了storyboard进行开发,当然我现在接手不会傻傻的重构,知道ios开发的 都不会这个样子的。所以我理所当然在他代码上面进行了添加,用了storyboard。扯了这么长时间,上代码。

代码主要是为了简单的属性传值:

AViewController *avc = [[AViewController alloc] init];
avc.id =id;
[g().maintabVC performSegueWithIdentifier:@"orderVC" sender:nil]

当然在AViewController 中肯定要重写avc.id的set方法的呢,会ios应该知道了。这个代码我就贴了。

可能有人会问这个不就是这个样子跳转吗?
传值,对的正常情况是对的呢。但是你不要忘了这个是storyboard的哦。
下面来分析原因:
首先分析下storyboard的预加载机制:
1.storyboard的原理也是将xml文件解析出来,找到相应的控制器等,转换成代码,然后创建对象并显示。和xib原理一样。
2.还有一点我们要明确一点当程序运行的时候,storyboard中的视图controller都加载转换成二进制代码了

就是说这句代码
AViewController *avc = [[AViewController alloc] init];
已经重建了viewcontroller,操作的是另外的指针引用。

因此我们 需要将storyboard中的视图进行获取就ok了,贴出代码:

AViewController *vc = [self.storyboardinstantiateViewControllerWithIdentifier:@"orderVC"]
[self.navigationControllerpushViewController:vc animated:YES];

这样就解决了,当然你需要在storyboard中对应controller进行设置id哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值