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这个实例才是我想要的啊! 展开
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这个实例才是我想要的啊! 展开
展开全部
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];
仅仅是示例。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询