2016-10-21 28 views
0

我想在動畫之後更改視圖控制器。動畫完成後,我使用NSTimer來更改視圖控制器。動畫發生在給定的默認ViewController上。在這個動畫運行一次之後,它應該使用prepareForSegue函數並轉到第二個視圖控制器。當我運行它時,動畫可以工作,但它不會更改視圖控制器。當我嘗試使用NSTimer更改視圖控制器時出錯(EXC_BAD_INSTRUCTION)

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) 
    } 

回答

0

有在你的屏幕截圖控制檯輸出的線索。

您隱式解開imageView但它是nil。這可能意味着沒有連接到該插座的圖像視圖。

相關問題