我在视图中有一个标签,可以在调用 void 时更新文本。我从我的应用程序代表中调用了这个 void。使用断点我可以看到实例方法正在工作,并且正在调用更改标签文本的行。
只有文字没有变化!在视图确实加载并完美更改时调用了相同的方法。
有谁知道如果通过应用程序委托中的实例方法调用标签文本不会改变的任何原因?
有什么我不知道的刷新功能吗?
谢谢
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”时崩溃了,因为就我的应用程序而言,它没有一。我的应用程序由我在它们之间切换的视图控制器组成,但是我目前正在处理的视图被嵌入到导航控制器中。这是确实有效的原始代码,但我认为这是因为原始项目都是基于导航的......
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”?