<!--
{
  "availability" : [
    "iOS: 6.0.0 -",
    "iPadOS: 6.0.0 -",
    "macCatalyst: 13.1.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UITableViewController/refreshControl",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UITableViewController(py)refreshControl"
  },
  "title" : "refreshControl"
}
-->

# refreshControl

The refresh control used to update the table contents.

```
var refreshControl: UIRefreshControl? { get set }
```

## Discussion

The default value of this property is `nil`.

Assigning a refresh control to this property adds the control to the view controller’s associated interface. You don’t need to set the frame of the refresh control before associating it with the view controller. The view controller updates the control’s height and width and sets its position appropriately.

The table view controller doesn’t automatically update table’s contents in response to user interactions with the refresh control. When the user initiates a refresh operation, the control generates a [`valueChanged`](/documentation/UIKit/UIControl/Event/valueChanged) event. You must associate a target and action method with this event and use them to refresh your table’s contents.

---

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)