2016-05-16 75 views
0

當我的應用程序正在運行時,按下電源按鈕(要鎖定設備),此功能正在調用。viewWillTransitionToSize即使我按下電源按鈕時也會調用

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

並返回使用

[UIApplication sharedApplication].applicationState 

如何防止調用此函數當前狀態UIApplicationStateActive?或如果電源按鈕按下如何忽略?因爲我不想在powerButton媒體上執行任何操作。

先決條件:啓動屏幕應該存在。

+0

當您鎖定設備時,應用程序狀態將爲UIApplicationStateInactive。你可以檢查這個標誌並執行操作或者什麼都不做! –

+0

許多次它的返回UIApplicationStateActive – Rajneesh071

+0

看起來像它首先返回StateActive然後它返回StateBAckground。也許你應該找StateBAckground –

回答

2

此函數調用應用程序最小化和電源按鈕由於多任務的新功能。
你可以讓你的應用程序全屏解決這個問題。

檢查✓ Requires full screen

enter image description here

但是,因爲你必須採用多任務處理在某些情況下,這是不正確的解決方案。

0

我調查了這種行爲。看起來這隻發生在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' –

相關問題