如何在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,并且应该关闭到底部(主页按钮端)。这是目前发生的事情。
答
你必须添加自定义转换动画以更改此默认行为。
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)
这似乎是工作,但有一个小故障,而过渡和呈现动画不像标准的动画。让我检查一下是否可以修复它。 – abhi1992