---
title: OCKTaskControllerProtocol
framework: CareKit
role: symbol
role_heading: Protocol
platforms: [iOS 13.0+, Mac Catalyst 13.0+, watchOS 7.0+]
path: carekit/ocktaskcontrollerprotocol
---

# OCKTaskControllerProtocol

A protocol that tracks and updates the state of a task.

## Declaration

```swift
protocol OCKTaskControllerProtocol : AnyObject
```

## Topics

### Publishing Changes

- [objectWillChange](carekit/ocktaskcontrollerprotocol/objectwillchange.md)
- [store](carekit/ocktaskcontrollerprotocol/store.md)

### Handling Task Selection

- [appendOutcomeValue(withType:at:completion:)](carekit/ocktaskcontrollerprotocol/appendoutcomevalue(withtype:at:completion:)-3est6.md)
- [eventFor(indexPath:)](carekit/ocktaskcontrollerprotocol/eventfor(indexpath:)-6lqed.md)
- [initiateDeletionForOutcomeValue(atIndex:eventIndexPath:deletionCompletion:)](carekit/ocktaskcontrollerprotocol/initiatedeletionforoutcomevalue(atindex:eventindexpath:deletioncompletion:)-4hoy0.md)
- [initiateDetailsViewController(forIndexPath:)](carekit/ocktaskcontrollerprotocol/initiatedetailsviewcontroller(forindexpath:)-5gptc.md)
- [makeOutcomeFor(event:withValues:)](carekit/ocktaskcontrollerprotocol/makeoutcomefor(event:withvalues:)-4sb0b.md)
- [setEvent(atIndexPath:isComplete:completion:)](carekit/ocktaskcontrollerprotocol/setevent(atindexpath:iscomplete:completion:)-11kln.md)

### Instance Methods

- [validatedEvent(forIndexPath:)](carekit/ocktaskcontrollerprotocol/validatedevent(forindexpath:).md)
- [validatedViewModel()](carekit/ocktaskcontrollerprotocol/validatedviewmodel().md)

## Relationships

### Conforming Types

- [OCKButtonLogTaskController](carekit/ockbuttonlogtaskcontroller.md)
- [OCKTaskController](carekit/ocktaskcontroller.md)

## See Also

### Task View Changes

- [OCKTaskViewDelegate](carekitui/ocktaskviewdelegate.md)
