我有一个视图层次结构,它按照以下方式设置(编程):
Window.root = TabBarController - > UINavigationControllers - > UIViewControllers
我认为这是相当标准的。这是我的问题:
我在选项卡A上。我想导航到选项卡B,并在选项卡B上的visibleViewController上调用一个方法。
// View Changes OK
[AppDelegate.tabBarController setSelectedIndex:tabB];
// nav = 0x387ABF i.e. Valid Address
UINavigationController *nav = (UINavigationController*)[AppDelegate.tabBarController selectedViewController];
// The problem:
nav.viewControllers; // this is nil
nav.topViewController; // as is this
nav.visibleViewContorller; // this too.
即使我将调用nav.viewControllers
放在从主线程调用的单独方法中,我仍然会得到0x0
/ nil
。
我做错了什么?
后续问题是: 更改标签时,如何将信息从一个ViewController传递到另一个ViewController? (如果我不能将VC上的方法从tabA调用到tabB)
答案 0 :(得分:0)
您应该将信息存储在一个公共场所,无论是单身还是初学者,只需上课并传递下去。
sharedDataObject = [[MySharedDataObject alloc] init];
firstViewController.myDataObject = sharedDataObject;
secondViewController.myDataObject = sharedDataObject;