我在视图中有一个标签,在调用void时更新文本。我从我的app Delegate中调用了这个空白。使用断点我可以看到实例方法正在工作,并且正在调用更改标签文本的行。
只有文字不变!在视图上调用相同的方法加载并完美地改变。
有没有人知道如果通过app delegate中的实例方法调用标签文本不会改变的任何原因?
是否有某种我不知道的刷新功能?
由于
appDelegate.m
-(void)callScheduler:(UILocalNotification *)notification
{
CompassViewController *curVC1 = [[CompassViewController alloc] init];
AlarmViewController *curVC2 = [[AlarmViewController alloc] init];
[curVC1 setTimeLabel];
[curVC2.alarmTableView reloadData];
}
CompassViewController.m
- (void) setTimeLabel {
alarmTimeLabel.text = NSLocalizedString(@"No Alarms", nil);
}
编辑: ...回到故事,我聘请了某人创建了一个小项目,然后我将其合并到我的应用程序中。唯一的问题是我的应用程序在运行“topViewController”时崩溃了,因为就我的应用程序而言,它没有一个。我的应用程序由我在其间插入的视图控制器组成,但随后我正在处理的视图被嵌入到导航控制器中。这是原始代码确实有效,但我认为这是因为origianl项目都是基于导航的......
UINavigationController *nav = (UINavigationController *)[[[[UIApplication sharedApplication] delegate] window] rootViewController];
UIViewController *curVC = nav.topViewController;
if ([curVC isKindOfClass:[CompassViewController class]])
[(CompassViewController *)curVC setTimeLabel];
else
[((AlarmViewController *)curVC).alarmTableView reloadData];
所以我想我的真正问题是,如何让我的应用程序使用“topViewController”?