我有一个具有三个视图控制器的 UITabBar 控制器。我正在尝试刷新我的两个视图控制器,它们是地图视图控制器和表格视图控制器;从带有滑动动作的第三个视图控制器。这是我尝试过的:
- (IBAction)actionMySlider:(id)sender{
NSNumberFormatter* numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior: NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
NSString *numberString = [numberFormatter stringFromNumber: [NSNumber numberWithInteger: mySlider.value]];
MetreLabel.text = [NSString stringWithFormat:@"Yarı Çap(Re): %@(m)",numberString];
[(AppDelegate *)[[UIApplication sharedApplication] delegate] setVariable:[NSString stringWithFormat:@"%f",mySlider.value]];
ViewController1 *VC1=[[ViewController1 alloc]init];
[VC1 viewDidLoad];
ViewController2 *VC2 = [[ViewController1 alloc]init];
[VC2 viewDidLoad];
}
谢谢您的回答。
编辑 根据答案,我的方法是在我的 TabBar.m 上实现一个 for 循环。但是我在实现这个时遇到了一些问题。
for (UIViewController *v in self.tabBar.viewControllers)
{
UIViewController *vc = v;
if ([v isKindOfClass:[UINavigationController class])
{
vc = [v visibleViewController];
}
if ([vc isKindOfClass:[MyViewController class]])
{
MyViewController *myViewController = vc;
[vc doSomething];
}
}
- 问题:我应该在 self.tabBar.viewControllers 上写什么而不是 viewcontrollers。我想不通。
- 问题:当我在 TabBar.m 的方法中实现了 for 循环后,我能否通过调用该方法从另一个视图控制器访问我的视图控制器?