延迟 IBAction 按钮
Delaying IBAction Button
我想延迟这个按钮23小时,也就是82800秒。它应该工作正常,单击后按钮确实延迟,但是当我切换到另一个视图控制器或重新进入应用程序时,按钮延迟功能无法工作,因为它只是在切换到另一个视图控制器后弹出回到可点击按钮或重新启动应用程序。
代码如下:
- (IBAction)save:(id)sender
{
UIButton *theButton = (UIButton *) sender;
theButton.enabled = NO;
[self performSelector:@selector(enableButton:) withObject:theButton afterDelay:82800.0];
}
- (void)enableButton:(UIButton *)button
{
button.enabled = YES;
}
我正在寻找允许此按钮延迟 23 小时的代码,无论我退出应用程序还是切换到另一个视图控制器。
请帮忙
你应该使用 NSUserDefaults
。当调用 save:
方法时,检查当前日期 [NSDate date]
并将其保存到用户默认值中。然后(当时间已经过去时)您从默认值中检索保存的日期并将其与当前日期进行比较。如果 23 小时已经过去,请启用按钮
更新:
这是您保存日期的方式:
- (IBAction)save:(id)sender
{
UIButton *theButton = (UIButton *) sender;
theButton.enabled = NO;
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"savedDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
然后(将来)您获取保存的日期:
NSDate* savedDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedDate"];
if ([[NSDate date] timeIntervalSinceDate:savedDate] >= 82800.0 )
{
theButton.enabled = YES;// you need to keep the reference to the button
}
我想延迟这个按钮23小时,也就是82800秒。它应该工作正常,单击后按钮确实延迟,但是当我切换到另一个视图控制器或重新进入应用程序时,按钮延迟功能无法工作,因为它只是在切换到另一个视图控制器后弹出回到可点击按钮或重新启动应用程序。
代码如下:
- (IBAction)save:(id)sender
{
UIButton *theButton = (UIButton *) sender;
theButton.enabled = NO;
[self performSelector:@selector(enableButton:) withObject:theButton afterDelay:82800.0];
}
- (void)enableButton:(UIButton *)button
{
button.enabled = YES;
}
我正在寻找允许此按钮延迟 23 小时的代码,无论我退出应用程序还是切换到另一个视图控制器。
请帮忙
你应该使用 NSUserDefaults
。当调用 save:
方法时,检查当前日期 [NSDate date]
并将其保存到用户默认值中。然后(当时间已经过去时)您从默认值中检索保存的日期并将其与当前日期进行比较。如果 23 小时已经过去,请启用按钮
更新:
这是您保存日期的方式:
- (IBAction)save:(id)sender
{
UIButton *theButton = (UIButton *) sender;
theButton.enabled = NO;
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"savedDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
然后(将来)您获取保存的日期:
NSDate* savedDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedDate"];
if ([[NSDate date] timeIntervalSinceDate:savedDate] >= 82800.0 )
{
theButton.enabled = YES;// you need to keep the reference to the button
}