As @ iosDev82 reports in its response, the sender is optional, which names the object (if any) that called segue.
If you call segue through code in the view controller, you can pass the view controller (self), or you can pass zero. This is just part of the information that is shared together to prepare ForSegue (again, as stated in iOSDv82).
If you call segue in the IBAction method code, your IBAction may have its own sender parameter (often a button). In this case, you can pass on the sender parameter to the performSegueWithIdentifier method.
Example:
@IBAction func buttonAction(sender: UIButton) {
source share