3

Is there an available view controller method that is called when the user presses the lock button? I'm looking for something like viewDidDisappear: or viewWillDisappear:, but specific to the case of the lock button being pressed.

4

2 に答える 2

2

UIApplicationDidEnterBackgroundNotificationユーザーが自分の電話をロックすると、という通知が投稿されます。これを聞く方法は次のとおりです。

あなたのViewControllerviewDidLoad:の:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenLocked) name:UIApplicationDidEnterBackgroundNotification object:nil];

次に、メソッドを定義し(私のものはscreenLocked上で呼び出されました)、画面がロックされたときに実行するコードを記述します。

-(void)screenLocked{
    //do stuff
}

また、必要なクリーンアップを行うには、このメソッドを ViewController にも追加します。

-(void)dealloc{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
}
于 2013-08-14T21:32:01.120 に答える
1

これを試して :

- (void)applicationDidEnterBackground:(UIApplication *)application
{
  UIApplicationState state = [application applicationState];
  if (state == UIApplicationStateInactive) {
      NSLog(@"Sent to background by locking screen");
  } else if (state == UIApplicationStateBackground) {
      NSLog(@"Sent to background by home button/switching to other app");
  } 
}
于 2013-08-14T21:35:58.167 に答える