Swift致命错误:在segue上展开Optional值时意外发现nil

时间:2015-11-15 00:55:07

标签: swift segue uigesturerecognizer gesture addsubview

我知道这是一个疯狂的问题,但我仍然无法弄明白。我正在使用库来创建循环进度条(KDCircularProgress)。一切正常,但是当我尝试调用并执行segue(用于更改ViewController)时,应用程序崩溃了"可选值"错误。

class ViewController: UIViewController, UIGestureRecognizerDelegate {

    ...
    // Gauge pressure
    var frontGaugeProgressLeft:  KDCircularProgress! //define the variable here
    ...

    override func viewDidLoad() {
        super.viewDidLoad()
        ...

        frontGaugeProgressLeft = KDCircularProgress(frame: CGRect(x: 0, y: 0, width: 125, height: 125))
        frontGaugeProgressLeft. ... //do some settings here

        // And display the progress bar to the view
        view.addSubview(frontGaugeProgressLeft) //if this is commented, app works

        ...
    }

    ...

    // Show settings/preferences menu
    func panAction(sender: UIScreenEdgePanGestureRecognizer) {
        if sender.edges == UIRectEdge.Right {
            performSegueWithIdentifier("showMenuSegue", sender: nil)
        }
    }

    ...

}

当我向左滑动并触发segue时,为了更改ViewController,应用程序崩溃了。我把它缩小到那个view.addSubview线。如果我评论该行,应用程序工作。尝试了一些事情,但仍然不知道如何解决这个问题。感谢支持!

1 个答案:

答案 0 :(得分:0)

固定。图书馆里有一些方法。评论说,既然没有使用,一切都没问题。

//    public override func didMoveToWindow() {
//        progressLayer.contentsScale = window!.screen.scale
//    }