我正在開發一個應用程序,該應用程序在啓動時處於縱向模式。之後,我爲我的項目添加了一些SDK。在集成SDK的過程中,需要在「常規」窗格中選中「縱向」和「橫向」權限。所以我將其設置爲在SDK集成手冊中給出的。如何停止設備方向更改
後,當我跑我的設備項目,將其旋轉到右邊的應用設備的方向正在發生變化。我怎樣才能設置方向是固定的,而不會干擾SDK。
我正在開發一個應用程序,該應用程序在啓動時處於縱向模式。之後,我爲我的項目添加了一些SDK。在集成SDK的過程中,需要在「常規」窗格中選中「縱向」和「橫向」權限。所以我將其設置爲在SDK集成手冊中給出的。如何停止設備方向更改
後,當我跑我的設備項目,將其旋轉到右邊的應用設備的方向正在發生變化。我怎樣才能設置方向是固定的,而不會干擾SDK。
如果您遇到問題設置方位的應用程序啓動之後,那麼你可能需要停止向每個視圖控制器或它的一個基地導航控制器
斯威夫特3:
class YourBaseNavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.current.setValue(UIInterfaceOrientation.portrait.rawValue, forKey: "orientation")
}
override var shouldAutorotate: Bool {
return false
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .portrait
}}
使用YourBaseNavigationController作爲您的導航控制器。基本上,此導航控制器中的所有視圖控制器都將強制僅支持縱向模式。
我會試試這個解決方案。 – Ramakrishna
如果我以編程方式將我的根視圖控制器設置爲導航控制器,該怎麼辦? 'nav = UINavigationController(rootViewController:SyncVc)' – Ramakrishna
因此,不要在這裏使用UINavigationController,而應該使用YourBaseNavigationController。 'YourBaseNavigationController(rootViewController:SyncVc)' – RMRAHUL
您需要通過代碼禁用方向。
在RootViewController的添加以下代碼:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);//set 'return NO'; for stop orientation
}
斯威夫特:
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}
好的。我會嘗試。 – Ramakrishna
可以清除問題正是你想要什麼如果你設置的風景正確,然後定位 - 當然它會改變。 –
我想我的應用程序將只支持肖像模式。我知道,如果我給風景權,它會改變方向。如果我刪除風景權,我的sdk無法正常工作,並且像'支持的方向與應用程序沒有共同的方向,並且應該手動標記返回YES'一樣出現一些錯誤。 – Ramakrishna
看看這個答案:http://stackoverflow.com/a/43359827/7715250 –