但在特定指定頁面時怎麼辦呢???
程式碼如下:
在APPDelegate裡面加入
var shouldRotate:Bool = false
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
if shouldRotate{
return .all
}else{
return .portrait
}
}
由於上方的func屬於強制轉向,所以我使用了.all而非.landscape
然後在你要翻轉的viewcontroller中加入
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.shouldRotate = true
這樣就能夠在指定的頁面翻轉了,但注意如果storyborad有做constraints
請記得做好直向跟橫向的constraints。要不然畫面轉了也不會有動作喔!
您好,謝謝您的分享的這個好方法,讓我可以很輕易的控制每個頁面是否可旋轉。
回覆刪除您好,我發現一開始的確可以控制其他頁面不轉向,只有我設定好的頁面才能轉向,但執行時發現,當特定頁面轉向之後,會導致其他頁面也開始可以轉向了,但是我只想要單一介面可以轉向。請問有什麼方法嗎?謝謝!
回覆刪除您好,因為參數是宣告在AppDelegate內的,所以他會一直存在,除非您將其釋放並重新賦予,基本上你只有一個頁面要讓他能轉動,所以在該頁面的viewWillDisappear去將參數調整回false即可
刪除