storyboard的问题 ios大神来看 只要能解决 分不是问题

以前用纯代码写程序的时候,会写:AViewController*A=[[AViewControlleralloc]init];BViewController*B=[[BV... 以前用纯代码写程序的时候,会写:
AViewController *A=[[AViewController alloc] init];
BViewController *B=[[BViewController alloc] init];
这时候 AViewController、BViewController的对象A、B都在。想怎么传值、使用都可以。

现在改用storyboard了,没用了以上实例化的步骤。
但我想在AViewController中 拿到BViewController的对象,请问怎么实现?

P.S.:AViewController、BViewController 都是一个Tabbarcontroller的分视图,不存在页面跳船传值。
比如:拨动A的一个UISwitch,从而控制B中成员变量 IsOpen(bool类型)的值。
在以前纯代码时,只需要在A的UISwitch的changeValue方法中写B.isOpen=YES(or NO)。因为已经拿到了B这个对象。
请问在使用storyboard写界面后,如何实现?
在UITabBarController 的ViewDidLoad里写两句完全一样的代码:
UITabBarController *root1=[[self storyboard] instantiateInitialViewController];
UITabBarController *root2=[[self storyboard] instantiateInitialViewController];
结果是:

地址完全不同 ,可见获取的是新建的实例 。 self这个实例才是我想要的啊!
展开
 我来答
tmartin1981
2014-08-13 · TA获得超过209个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:341万
展开全部
UIViewController *controller = [[self storyboard] instantiateViewControllerWithIdentifier:@"BViewController"];
更多追问追答
追问
这个返回的是B的一个新实例    不是程序刚进去展现出来的B(因为A、B都是Tabbarcontroller的分视图),我想拿到这个B,  而不是新实例化的。
追答
[storyboard instantiateInitialViewController];
这个能够取到初始化的那个Controller, 然后在操作这个Controller去找B那个。

比如你初始化的那个Controller是NavigationController
UINavigationController* rootNavigationController = [storyboard instantiateInitialViewController];
UIViewController* rootViewController = [[rootNavigationController viewControllers] lastObject];

仅仅是示例。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式