我正在尝试做一些非常简单的事情:当应用程序从后台变为活动状态时更新我的(一个也是唯一的)视图控制器上的一些标签(为了简单起见,比如当前时间(即使在我的情况下,我正在更新电话参数,例如呼叫状态等,但这无关紧要))。
老实说,我确信一旦调用viewDidLoad
,此方法中的代码将再次运行,因此我的所有标签都是最新的。但这不会发生,除非我杀死应用程序并重新启动它,所以我在应用程序委托中所做的applicationDidBecomeActive
,我调用了我的视图控制器方法:
ViewController *vc = [[ViewController alloc] init];
[vc refreshCalls];
哪个确实执行此代码,但标签没有任何反应。这样做时,我还显示了一个UIAlertView
确实有更新的信息,但没有标签。
我怎样才能解决这个问题?任何想法将不胜感激。
这是我的应用程序委托 applicationDidBecomeActive 方法:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
ViewController *vc = [[ViewController alloc] init];
[vc refreshCalls];
}
refreshCalls
以及视图控制器中的方法:
-(void) refreshCalls {
NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSString *currentTime = [dateFormatter stringFromDate:today];
NSLog(@"User's current time in their preference format:%@",currentTime);
UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"TIME" message:currentTime delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil , nil];
[alert1 show]; --> does show an update time
myLabel.text = currentTime;
[self.view addSubview:myLabel]; --> nothing happens, stays the last time
}