我正在尝试按照一个简单的教程来进行从一个viewController到secondViewController的循环转换。
然而,Xcode给了我一个错误,在教程中没有遇到,也不确定如何处理它。
Variable binding in a condition requires an initializer error
import UIKit
class CircularTransition: NSObject {
var circle = UIView()
var startingPoint = CGPoint.zero {
didSet {
circle.center = startingPoint
}
}
var circleColor = UIColor.white
var duration = 0.3
enum CircularTransitionMode: Int {
case present, dismiss, pop
}
var transition:CircularTransitionMode = .present
}
extension CircularTransition:UIViewControllerAnimatedTransitioning {
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return duration
}
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
let containerView = transitionContext.containerView
var CircularTransitionMode: CircularTransitionMode
if CircularTransitionMode == .present {
if case let presentedView == transitionContext.view(forKey: UITransitionContextViewKey.to) {
let viewCenter = presentedView.center
let viewSize = presentedView.frame.size
circle = UIView()
}
}
else{
}
}
}
答案 0 :(得分:0)
animateTransition函数存在一些问题。
首先出现错误的行应为:
if let presentedView = transitionContext.view(forKey: UITransitionContextViewKey.to) {
因为您不需要进行个案检查,而您尝试分配不进行比较,因此它不是= =。
其次,您创建一个CircularTansitionMode类型的变量,但不要在此行中为其指定任何内容:
var CircularTransitionMode: CircularTransitionMode
然后立即尝试使用它。
修复原始错误,然后在下一行标记第二个,说它正在使用而未初始化。
你也有很多未使用的变量,但也许你还没有提出完整的代码。