0

アニメーションの後にビュー コントローラーを変更しようとしています。NSTimerアニメーションが完了した後、View Controller を変更するために を使用しました。アニメーションは、指定されたデフォルトで行われますViewController。このアニメーションが 1 回実行された後、prepareForSegue関数を使用して 2 番目のビュー コントローラーに移動することになっています。実行すると、アニメーションは機能しますが、View Controller は変更されません。

ここに画像の説明を入力

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

1 に答える 1

0

スクリーンショットのコンソール出力に手がかりがあります。

あなたは暗黙的にラップを解除していますimageViewが、それはnil. これはおそらく、そのアウトレットに接続されたイメージ ビューがないことを意味します。

于 2016-10-22T01:03:52.890 に答える