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

# rowController(at:)

Returns the row controller for the row at the specified index in the table.

```
func rowController(at index: Int) -> Any?
```

## Parameters

`index`

The zero-based index of the row. This parameter must be between zero and the total number of rows specified in the [`numberOfRows`](/documentation/WatchKit/WKInterfaceTable/numberOfRows) property.

## Return Value

The row controller object, or `nil` if there are no row controllers yet or `index` is out of bounds.

## Discussion

Call the [`setRowTypes(_:)`](/documentation/WatchKit/WKInterfaceTable/setRowTypes(_:)) or [`setNumberOfRows(_:withRowType:)`](/documentation/WatchKit/WKInterfaceTable/setNumberOfRows(_:withRowType:)) method before using this method to retrieve any row controllers. After you call one of those methods, the table creates row controllers for each row type and stores them internally in an array. Use this method to retrieve those row controllers.

---

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)