iOS 8 unwind segue 导致方向错误

Posted

技术标签:

【中文标题】iOS 8 unwind segue 导致方向错误【英文标题】:iOS 8 unwind segue leads to orientation error 【发布时间】:2015-08-07 02:49:45 【问题描述】:

我有一个视图控制器 A(VCA),它以模态方式连接到视图控制器 B(VCB)。 VCB 有一个按钮,可以返回到 VCA。我面临的问题是,如果我从 VCA(纵向模式)切换到 VCB,然后将 VCB 的方向更改为横向,然后点击按钮展开,VCA 以纵向模式出现,右侧屏幕的一半全黑。

【问题讨论】:

【参考方案1】:

如果您使用自定义动画视图控制器转换,请尝试设置您要转换到的视图的框架:

extension CustomTransition: UIViewControllerAnimatedTransitioning 

    func animateTransition(context: UIViewControllerContextTransitioning) 
        guard
            let containerView = context.containerView(),
            let fromView = context.viewForKey(UITransitionContextFromViewKey),
            let toView = context.viewForKey(UITransitionContextToViewKey)
        else 
            return context.completeTransition(!context.transitionWasCancelled())
        

        // This is the important line
        toView.frame = fromView.frame

        // Do your custom animations
    

【讨论】:

以上是关于iOS 8 unwind segue 导致方向错误的主要内容,如果未能解决你的问题,请参考以下文章

适配 iOS 8 时遇到的问题两则:远程推送和 Unwind Segue

iOS从推送segue中检测unwind segue

iOS开发使用Unwind Segue进行返回

Unwind segue 在 Swift 3 和 iOS 10 中不起作用

iOS - 如何在 Unwind Segue 中控制动画类型?

Unwind segues 不适用于模态视图控制器