2012-05-29 63 views
3

我在iPad的(全屏)主視圖頂部有工具欄。工具欄有一個barButtonItem,當按下時,顯示一個彈出窗口。iPad - 在全屏模式視圖控制器在iPad上解除屏幕後不再接收觸摸事件

在彈出窗口中,我有一個UIButton,它在按下時告訴委託人(主視圖控制器)關閉彈出窗口並顯示整頁模態視圖。

這一切工作正常。

當我關閉模態視圖時,彈出窗口占據的區域(包括主視圖和工具欄按鈕)不再響應觸摸事件。

如果我旋轉設備並且只出現在橫向模式下,此問題將自行糾正。

有什麼建議嗎?

更新:在模擬器中運行時,僅在實際的iPad上不會發生此錯誤。

委託方法我不得不解僱全屏模式的看法..

- (void)fullScreenViewControllerDidFinish:(FullScreenWebViewController *)fullScreenWebView { 
    [self dismissViewControllerAnimated:YES completion:^{ 
     [self setFullScreenWVC:nil]; 
     [[self view] setNeedsLayout]; //Does't fix the issue 
    }]; 
} 

更新: 使用Instruments,我已經得到了iPad給我看它是如何佈局子視圖。它看起來像是認爲當模式視圖被解散但設備明顯處於橫向時iPad處於肖像模式。

enter image description here

回答

2

我解決了這一問題。

我用

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 

,而不是

UIDeviceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 

而iPad沒有得到出於某種原因,正確的方向。

感謝您的幫助。

0

我可能會誤解你的問題,但我會建議嘗試一次模態視圖駁回叫「setNeedsLayout」在你的主視圖。這應該會觸發視圖佈局的自動調整大小,並可能在未自動調整大小時解決問題。

看看這個鏈接獲取更多信息:

http://developer.apple.com/library/ios/ipad/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instm/UIView/setNeedsLayout

+0

凱文,這並沒有解決問題。我會用我的全屏VC解僱委託回調來更新這個問題。 –

+0

請嘗試調用「setNeedsDisplay」,然後重新繪製整個邊界矩形,而不是先前的「setNeedsLayout」建議。 –

+0

這也沒有效果。我應該在主視圖上調用它們,對吧? –