我尝试使用NSTimer更改View Controller时出错(EXC_BAD_INSTRUCTION)

时间:2016-10-21 23:59:08

标签: swift nstimer exc-bad-instruction

我正在尝试在动画后更改视图控制器。完成动画后,我使用NSTimer来更改视图控制器。动画发生在给定的默认ViewController上。在此动画运行一次后,它应该使用prepareForSegue函数并转到第二个视图控制器。当我运行它时,动画可以工作,但它不会改变视图控制器。

enter image description here

import UIKit

class ViewController: UIViewController, UIViewControllerTransitioningDelegate {
    @IBOutlet weak var imageView: UIImageView!

    var timer = NSTimer()

    override func viewDidLoad() {
        super.viewDidLoad()

        var imagesNames = ["stairs", "stairs2", "stairs3", "stairs4", "stairs5", "stairs6", "stairs7", "stairs8", "stairs9", "stairs10", "stairs11", "stairs12", "stairs13", "stairs14", "stairs15", "stairs16", "stairs17", "stairs18", "stairs19", "stairs20", "stairs21", "stairs22", "stairs23", "stairs24", "stairs25", "stairs26", "stairs27", "stairs28", "stairs29", "stairs30", "stairs31", "stairs32", "stairs33", "stairs34", "stairs35", "stairs36", "stairs37", "stairs38", "stairs39", "stairs40", "stairs41", "stairs42", "stairs43", "stairs44", "stairs45", "stairs46","stairs47", "stairs48", "stairs49", "stairs50", "stairs51","stairs52", "stairs53", "stairs54", "stairs55", "stairs56","stairs57"]

        var images = [UIImage]()

        for i in 0..<imagesNames.count{
            images.append(UIImage(named: imagesNames[i])!)
        }

        imageView.animationImages = images;
        imageView.animationDuration = 4;
        imageView.startAnimating()

        _ = NSTimer.scheduledTimerWithTimeInterval(4.0, target: self, selector: #selector(timeToMoveOn), userInfo: nil, repeats: false)
    }

    func timeToMoveOn() {
        self.performSegueWithIdentifier("goToMainUI", sender: self)
    }

1 个答案:

答案 0 :(得分:0)

屏幕截图中的控制台输出中有一条线索。

您隐含地展开imageView,但它是nil。这可能意味着没有连接到该插座的图像视图。