<!--
{
  "availability" : [
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchKit",
  "identifier" : "/documentation/WatchKit/WKInterfaceController/contextsForSegue(withIdentifier:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "WatchKit"
    ],
    "preciseIdentifier" : "c:objc(cs)WKInterfaceController(im)contextsForSegueWithIdentifier:"
  },
  "title" : "contextsForSegue(withIdentifier:)"
}
-->

# contextsForSegue(withIdentifier:)

Returns the context objects to pass to a page-based set of interface controllers when a button is tapped.

```
func contextsForSegue(withIdentifier segueIdentifier: String) -> [Any]?
```

## Parameters

`segueIdentifier`

The identifier of the segue that was triggered. Specify the identifier for a segue in the Attributes inspector when configuring your interface.

## Return Value

An array of objects to pass to the new interface controllers. The number of objects in the array must match the number of interface controllers that are present in the page-based interface that is the target of the segue. Use this object to communicate important information to the new interface controller, such as the data to display or any relevant state information. You may return `nil` if you want, but doing so is not recommended.

## Discussion

When you create a modal segue from a button to a set of interface controllers in a page-based arrangement, the system calls this method when that segue is triggered. Use this method to provide the new interface controllers with any contextual data they need to display their content. The objects in the array are passed directly to the [`awake(withContext:)`](/documentation/WatchKit/WKInterfaceController/awake(withContext:)) method of the corresponding interface controllers.

WatchKit calls this method on your WatchKit extension’s main thread. Implementation of this method is optional but is recommended if you use segues in your storyboard file. You do not need to call `super` in your implementation. For segues originating from a table row, use the [`contextsForSegue(withIdentifier:in:rowIndex:)`](/documentation/WatchKit/WKInterfaceController/contextsForSegue(withIdentifier:in:rowIndex:)) method instead.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)