2016-03-28 61 views
1

第一次發帖,所以請原諒我,如果我不給我的問題正確的信息...iOS版 - 意外旋轉回縱向上賽格瑞

我創建一個應用程序(在SWIFT),和我想支持所有屏幕的所有屏幕方向(並已相應地在Xcode常規選項卡中設置)。有一個登錄/啓動屏幕,然後該應用程序的其餘部分的根控制器是一個UINavigationController。

我的問題 - 即使設備處於橫向方向,屏幕仍然可以在任何週期內旋轉回肖像,並且所有屏幕都支持橫向顯示! 這是一個segue的標準行爲?如果是這樣,我可以以某種方式防止它? 要清楚 - 我只是希望屏幕旋轉繼續反映出繼續播放後的設備方向 - 所有屏幕當前都支持所有方向。

我試圖設置shouldAutorotate到給定的屏幕/視圖控制器返回false,和擴展的UINavigationController來指代可見視圖控制器的shouldautorotate()函數,如下所示:

extension UINavigationController { 
    public override func shouldAutorotate() -> Bool { 
     return visibleViewController!.shouldAutorotate() 
    } 
} 

這防止了旋轉遠離賽格的(風景)設備方向,但當然如果用戶旋轉回肖像,屏幕仍然是風景...

看起來這應該是非常簡單的,但我找不到任何信息或其他問題,只是關於限制允許的方向的問題(I只是想屏幕的方向,以反映設備的方向在任何時候)...

一個想法 - 有沒有辦法來檢測shouldAutorotate功能是否被稱爲繼segue後?在這種情況下返回false,否則返回true?

任何幫助將感激地收到!

感謝

回答

0

這2種方法添加到您的視圖控制器:

override func shouldAutorotate() -> Bool { 
    return false 
} 


override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
    return UIInterfaceOrientationMask.Portrait 
}