Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 按下锁定按钮的视图控制器方法?_Ios_Objective C - Fatal编程技术网

Ios 按下锁定按钮的视图控制器方法?

Ios 按下锁定按钮的视图控制器方法?,ios,objective-c,Ios,Objective C,当用户按下锁定按钮时,是否有可用的视图控制器方法被调用?我正在寻找类似于ViewDidEnglish:或ViewWillEnglish:,但具体到按下锁定按钮的情况。当用户锁定手机时,会发布一个名为UIApplicationIdentinterbackgroundNotification的通知。以下是如何聆听它: 在ViewController的viewDidLoad:中: [[NSNotificationCenter defaultCenter] addObserver:self select

当用户按下锁定按钮时,是否有可用的视图控制器方法被调用?我正在寻找类似于
ViewDidEnglish:
ViewWillEnglish:
,但具体到按下锁定按钮的情况。

当用户锁定手机时,会发布一个名为
UIApplicationIdentinterbackgroundNotification
的通知。以下是如何聆听它:

在ViewController的
viewDidLoad:
中:

[[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];
}
试试这个:

- (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");
  } 
}

电话呼叫保持按钮?你说的“保持按钮”是什么?电话右上角的按钮。我的错误--“锁定”按钮请用“锁定”而不是“保持”来编辑你的问题注意,这是AppDelegate中定义的方法,而不是
UIViewController
的方法。谢谢你的帮助。我特别想寻找一种在视图控制器内部调用的方法。hw731的回答解决了这一问题。