label.text在appDelegate中调用的实例方法后不会更改。为什么会这样?

时间:2013-10-02 22:38:05

标签: iphone text uilabel appdelegate instance-method

我在视图中有一个标签,在调用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”?

0 个答案:

没有答案