转换时发生致命错误

时间:2017-08-08 11:05:20

标签: ios swift xcode uiviewanimationtransition

  

错误:"致命错误:在展开可选值时意外发现nil"在同一视图控制器上的两个视图之间转换期间

当我调用Flip1函数时,它会给我上面的错误。

以下代码:

@IBAction func Flip(_ sender: AnyObject){
    UIView.transition(from: Back, to: Front, duration: 0.5, options: UIViewAnimationOptions.transitionFlipFromLeft, completion: nil)
}

@IBAction func Flip1(_ sender: AnyObject){
    UIView.transition(from: Front, to: Back, duration: 1, options: UIViewAnimationOptions.transitionFlipFromRight, completion: nil)
}

2 个答案:

答案 0 :(得分:2)

是的,我终于找到了错误。

只需将插座作为强力参考,或者如下所示:

@IBOutlet var Front: UIView!
@IBOutlet var Back: UIView!

已经完成了!

答案 1 :(得分:1)

以下是您的问题的答案:transitionFromView:toView:duration:options:completion:

  

参数(根据文件):

     

fromView
转换的起始视图。默认情况下,此视图作为转换的一部分从其超级视图中删除。

     

toView
转换的结束视图。默认情况下,此视图作为转换的一部分添加到fromView的superview

解决您的问题:

如果您想在内存中同时查看两个视图,请使用transitionWithView:duration:options:animations:completion:代替transitionFromView:toView:duration:options:completion:

试试这个:

  1. 添加包含“Front”和“Back”视图的UIView。 (将新视图添加为“前”和“后”视图的超级视图)

  2. 在“超级视图”上执行翻转动画,同时在“前”和“后”视图上隐藏和取消隐藏操作。使用transitionWithView:duration:options:animations:completion:动画块

  3. 示例代码:

    {{1}}