quanguyen
quanguyen

Reputation: 1463

Swift 3 - custom segue crashed with UIStoryboardSegueTemplate.m:85

According to this link, I am trying to make my own custom segue.

In the initial view controller (titled: First), pressing 2 (UIButton) to segue to Second.

But the app always crashes at performSegue(withIdentifier: "customSegue", sender: self) with error: *** Assertion failure in -[UIStoryboardSegueTemplate segueWithDestinationViewController:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3599.6/UIStoryboardSegueTemplate.m:85

Here is the main storyboard:

enter image description here

Crash:

enter image description here

CustomSegue

import UIKit

class CustomSegue: UIStoryboardSegue {

    override func perform() {
        let sourceView = source.view!
        let destView = destination.view!

        let screenWidth = UIScreen.main.bounds.size.width
        let screenHeight = UIScreen.main.bounds.size.height

        destView.frame = CGRect(x: 0, y: screenHeight, width: screenWidth, height: screenHeight)

        let window = UIApplication.shared.keyWindow
        window?.insertSubview(destView, aboveSubview: sourceView)

        UIView.animate(withDuration: 0.4, animations: { 
            sourceView.frame = sourceView.frame.offsetBy(dx: 0.0, dy: -screenHeight)
            destView.frame = destView.frame.offsetBy(dx: 0.0, dy: -screenHeight)
            }) { [weak self] (finished) in
                guard let strongSelf = self else { return }

                strongSelf.source.present(strongSelf.destination, animated: false, completion: nil)
        }

    }
}

Second is just an empty View Controller:

import UIKit

class Second: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

}

I compare the setup in my project with the downloaded sample but cannot find the difference.

How should I fix this crash?

Upvotes: 0

Views: 542

Answers (1)

quanguyen
quanguyen

Reputation: 1463

For those who are interested.

It took me nearly 2 days to find this: to overcome this crash, I have to specify "Module" in Storyboard - click on Segue - Attribute inspector.

Upvotes: 1

Related Questions