簡體   English   中英

iPhone和iPad之間modalviewcontroller的不同定向行為

[英]Different orientation behavior of modalviewcontroller between iphone and ipad

我已經完全迷失了試圖了解iOS中的這種特定行為。 14小時后,閱讀了無數Stack Overflow問題,並仔細閱讀了所有相關的Apple文檔,我仍然很困惑-所以我希望有一個具體的例子可以幫助專家向我解釋。

我要呈現的是模態視圖控制器(此問題的行為適用於任何Apple的預制modalviewcontrollers,似乎無關緊要。)

簡單來說,我將設備旋轉到橫向。 如果我打電話給:

[rootViewController presentModalViewController:modalVC animated:YES];

在iPhone上,它按預期顯示。 在iPad上,它也按預期顯示(包含在帶有灰色背景的頁面中)

稍后,在modalVC的內置“完成”按鈕的委托中,我調用:

[rootViewController dissmissModalViewControllerAnimated: YES];

這是症狀開始的地方:

在iPhone上, 無論 rootViewController的shouldAutoRotateToInterfaceOrientation是否返回YES或NO,狀態欄都會立即輸入縱向。 然后,模態會以錯誤的方向(縱向,向右)滑出,並且下面的rootViewController現在以縱向顯示,而無需查詢其shouldAutoRotate。

在iPad上,我得到了預期的行為-模態按預期方式消失,方向保持預期。

我在這里不明白什么? 我已經嘗試了很多事情,包括重寫modalViewController的shouldAUtoRotate行為,以及使用各種容器viewControllers。 唯一有效的解決方案是創建一個存根UIViewController,將其視圖附加到keyWindow,然后在其中顯示模式。 雖然這可以解決問題,但許多Apple和非現場文章都宣稱這是不正確的(有充分的理由,因為它阻止了適當的事件傳播到達該存根UIViewController。)

各位在此道歉。 與這些類型的事物一樣,它的開發人員(me)錯誤。 我正在發布發生了什么事,以防其他人到達這里。

這是針對在第三方應用程序中實現的靜態庫的。 (在這種情況下為Flash),但我沒有其源代碼。 一些深入的調試揭示了我想應該是顯而易見的-使用我的庫的第三方應用程序正在其自己的shouldAutoRotate函數中進行一些可疑的計算,並且在某些條件下對-any- toInterfaceOrientation參數返回NO(不正確)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM