如何在swift中从iPhone的肖像底部仅显示景观ViewController?

如何在swift中从iPhone的肖像底部仅显示景观ViewController?

问题描述:

我只有纵向模式只有一个屏幕的肖像应用程序。如何在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

你必须添加自定义转换动画以更改此默认行为。

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