viewWillTransitionToSize即使我按下电源按钮时也会调用

问题描述:

当我的应用程序正在运行时,按下电源按钮(要锁定设备),此功能正在调用。viewWillTransitionToSize即使我按下电源按钮时也会调用

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 

并返回使用

[UIApplication sharedApplication].applicationState 

如何防止调用此函数当前状态UIApplicationStateActive?或如果电源按钮按下如何忽略?因为我不想在powerButton媒体上执行任何操作。

先决条件:启动屏幕应该存在。

+0

当您锁定设备时,应用程序状态将为UIApplicationStateInactive。你可以检查这个标志并执行操作或者什么都不做! –

+0

许多次它的返回UIApplicationStateActive – Rajneesh071

+0

看起来像它首先返回StateActive然后它返回StateBAckground。也许你应该找StateBAckground –

此函数调用应用程序最小化和电源按钮由于多任务的新功能。
你可以让你的应用程序全屏解决这个问题。

检查✓ Requires full screen

enter image description here

但是,因为你必须采用多任务处理在某些情况下,这是不正确的解决方案。

我调查了这种行为。看起来这只发生在iPad上,也许它与分割视图功能有关。

尝试通过在方法的开头添加忽略方法内运行的代码:

if([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) { 
return; 
} 

UPDATE:

我发现这个问题的原因。

当您按下“电源”按钮,应用程序窗口更改它们的大小,有时发生在应用程序设置正确applicationState前:

enter image description here enter image description here

这就是为什么这个方法调用。 对不起,我的英语=)

+0

是,iPad和拆分视图, – Rajneesh071

+0

但同时按下电源按钮,返回其UIApplicationStateActive – Rajneesh071

+0

@ Rajneesh071很奇怪,但我有未来: '(lldb)po [UIApplication sharedApplication] .applicationState UIApplicationStateBackground' –