我有一个我制作的iPhone应用程序,在一个视图上有一个UIDatePicker。
最初启动应用时 - 首先加载视图;在viewDidLoad中我将UIDatePicker get设置为当前日期/时间。它工作正常。
现在,如果用户最小化应用程序并执行其他操作(但不会终止应用程序),然后返回应用程序,则返回该视图时日期/时间不会更新。
我想知道如何在加载视图的任何时候让它“刷新”UIDatePicker(例如,当它在已经打开但是在后台之后返回它时)。
有什么想法吗?
如果没有快速/简单的方法 - 我还考虑在UIDatePicker最初加载时创建一个与时间相关的变量 - 然后在重新加载它时检查是否自上次查看以来已超过10分钟。如果是这样,那么它会将UIDatePicker设置为当前日期/时间。
有什么想法吗?
答案 0 :(得分:3)
您的视图加载可能看起来像这样
- (void)viewDidLoad {
[super viewDidLoad];
// listen for notifications for when the app becomes active and refresh the date picker
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshDatePicker) name:UIApplicationDidBecomeActiveNotification object:nil];
}
然后在你的viewWillAppear:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// refresh the date picker when the view is about to appear, either for the
// first time or if we are switching to this view from another
[self refreshDatePicker];
}
并简单地将刷新方法实现为:
- (void)refreshDatePicker {
// set the current date on the picker
[self.datepicker setDate:[NSDate date]];
}
这将在两个案例中更新您的日期选择器,当应用程序打开时视图从另一个视图切换到此视图,以及当应用程序背景化并使用该视图到达前台时视图已经打开。
答案 1 :(得分:0)
您应该可以在viewWillAppear方法中设置日期。每次视图出现在屏幕上时都会调用该方法。
- (void) viewWillAppear: (BOOL) animated
{
[super viewWillAppear:animated];
// update the date in the datepicker
[self.datepicker setDate:[NSDate date]];
}