しばらくの間、 AppDelegate.mからMainViewController.mへのメソッド呼び出しを介してUILabel を更新しようとしています。なぜこれが機能しないのか、私には本当にわかりません。メソッドは問題なく呼び出され、ラベル text の変更/更新の最後のビットを除いてすべてが機能します。
ワークフロー
AppDelegateで、データを処理してラベルを更新するapplicationDidBecomeActive
MainViewControllerのupdateLabelMethod
メソッドを呼び出します。
コード
MainViewController.h
UILabel *daysResultOutlet;
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate>
@property (strong, nonatomic) IBOutlet UILabel *daysResultOutlet;
@end
@interface MainViewController ()
- (void) updateLabelMethod;
@end
MainViewController.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!
}
結果と試み
ラベルは、メソッド呼び出しのクロスクラスまたは を介して更新されませんが、メソッドが呼び出されて値を取得します: 。さらに、MainViewController 内からこのメソッドを呼び出すと、すべて正常に動作します。updateLabelMethod
mvsAsObj.daysResultOutlet.text = @"update!!";
LOG: Testing to print value: test
[self updateLabelMethod]
私は基本的にすべての解決策を試しましたが、ここで私がやっていることはいくつかのStackoverflowの質問からまっすぐなので、どうすればよいかわかりません。ストーリーボードを使用しています。
さらにアイデアはありますか?