Q:

How to access source view that perform segue from within that segue or destination view controller?

I have a custom ContainerSegue inherited from UIStoryboardSegue. Within perform() method I need to access the UIView that performed current segue. How can I do this? Is it possible?

In other words I need to access the sender within perform() method.

A:

A segue class doesn't typically keep track of the sender, but since you have defined a custom segue class called ContainerSegue, you can add a sender property to it:
class ContainerSegue: UIStoryboardSegue {
    // Add this property to hold the sender
    var sender: AnyObject?

    override func perform() {
        if let button = sender as? UIButton, title = button.currentTitle {
            print("button title is \(title)")
        }

        // Add remainder of perform code here
    }
}

and then set that in prepareForSegue:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let containerSegue = segue as? ContainerSegue {
        containerSegue.sender = sender
    }
}

In a similar manner, if you want to access the sender in the destinationViewController, add a sender property to the destinationViewController and set that in prepareForSegue:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let dvc = segue.destinationViewController as? MyDestinationVC {
        dvc.sender = sender
    }
}

