在" tvos"中,如果用户正在观看应用并长时间按下" Home"按钮,然后它出现一个系统屏幕,有两个选项("睡眠" /"取消"),即:
现在睡觉? 睡眠/取消
我想知道是否有办法在我的应用程序的视图控制器中检测按钮"取消"已被选中或者至少有机会在从系统屏幕返回后使用" Sleep / Cancel"选项执行某些代码,如果"取消"选项已被选中;因为在这种情况下,像" viewWillAppear,..."不叫。
答案 0 :(得分:3)
在您的应用程序委托类中,当出现“睡眠/取消”菜单时,应调用方法applicationWillResignActive
。
如果用户选择取消,则应该在应用程序获得焦点时调用方法applicationDidBecomeActive
。
当您的应用程序进入后台和前台时(例如,当您长按" MENU按钮)时,您应该获得相同的事件。
答案 1 :(得分:1)
我尝试了另一种解决方案;也就是说,在“ViewController”的“viewWillAppear”中我感兴趣的是,我添加了以下通知:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSNotificationCenter * nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(appWillEnterForeground:) name:UIApplicationDidBecomeActiveNotification object:nil];
}
- (void) viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void) appWillEnterForeground:(NSNotification *)notification {
//DO YOUR DESIRED ACTION
}
通过这种方式,我可以在“ViewController”中检测到我从“取消”操作回来了