一段时间以来,我一直在尝试通过从AppDelegate.m到MainViewController.m的方法调用来更新 UILabel。我真的不明白为什么这不起作用。该方法被调用,一切正常,除了更改/更新标签文本的最后一点。
工作流程
在AppDelegateapplicationDidBecomeActive
中调用MainViewController中处理数据和更新标签的方法。updateLabelMethod
代码
主视图控制器.h
UILabel *daysResultOutlet;
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate>
@property (strong, nonatomic) IBOutlet UILabel *daysResultOutlet;
@end
@interface MainViewController ()
- (void) updateLabelMethod;
@end
主视图控制器.m
@synthesize daysResultOutlet;
- (void) updateLabelMethod {
NSString *value = @"test";
NSLog(@"Testing to print value: %@",value);
[daysResultOutlet setText:value]; //insert in label
}
AppDelegate.m
#import "AppDelegate.h"
#import "MainViewController.h"
@interface MainViewController ()
@end
- (void)applicationDidBecomeActive:(UIApplication *)application
{
MainViewController *mvsAsObj = [[MainViewController alloc] init];
[mvsAsObj updateLabelMethod]; //running function, value correctly logged but lbl not updated
mvsAsObj.daysResultOutlet.text = @"update!!"; // not working!
}
结果与尝试
标签不会通过跨类方法调用或通过更新,但是updateLabelMethod
,mvsAsObj.daysResultOutlet.text = @"update!!";
该方法被调用并它的值:LOG: Testing to print value: test
。此外,如果我从 MainViewController 中调用此方法:[self updateLabelMethod]
一切正常。
我已经尝试了基本上所有的解决方案,但问题是,我在这里做的是直接解决几个 Stackoverflow 问题,所以我不知道如何继续。我正在使用故事板。
任何进一步的想法?