2017-06-17 70 views
4

我只有縱向模式只有一個屏幕的肖像應用程序。如何在swift中從iPhone的肖像底部僅顯示景觀ViewController?

我做了什麼: 我創建一個UINavigationController子類,並覆蓋了以下內容:

import UIKit 

class LandscapeVCNavigationController: UINavigationController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask { 
     return .landscape 
    } 
    override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation { 
     return .landscapeLeft 
    } 
} 

然後使用這個navigationController介紹我的風景視圖 - 控制是這樣的:

if let vc = storyboard?.instantiateViewController(withIdentifier: StoryBoardIdentifiers.playerVCStoryboardIdentifier) as? PlayerViewController { 

      let navController = LandscapeVCNavigationController.init(rootViewController: vc) 

      present(navController, animated: true, completion: { 
      }) 
     } 

這工作得很好。

我需要什麼:

我需要從底部(主頁按鈕端)呈現風景VC,並且應該關閉到底部(主頁按鈕端)。這是目前發生的事情。

enter image description here

回答

1

你必須添加自定義轉換動畫以更改此默認行爲。

let transition = CATransition() 
    transition.duration = 0.3 
    transition.timingFunction = CAMediaTimingFunction(name:kCAMediaTimingFunctionEaseInEaseOut) 
    transition.type = kCATransitionPush 
    transition.subtype = kCATransitionFromLeft 
    self.view!.window!.layer.add(transition, forKey: nil) 
    self.present(navController, animated: false, completion:nil) 
+0

這似乎是工作,但有一個小故障,而過渡和呈現動畫不像標準的動畫。讓我檢查一下是否可以修復它。 – abhi1992