ios开发-storyboard所遇到的坑

来源:互联网 发布:苏联东芝事件知乎 编辑:程序博客网 时间:2024/05/17 09:05

前端时间由于客串下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哦。

0 0
原创粉丝点击